Skip to content

feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+69 tests) - #60

Open
manus-use wants to merge 1 commit into
mainfrom
feat/poc-freshness
Open

feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+69 tests)#60
manus-use wants to merge 1 commit into
mainfrom
feat/poc-freshness

Conversation

@manus-use

@manus-use manus-use commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Summary

Implements the poc-freshness CLI subcommand and get_poc_freshness Strands tool — both documented in the README but previously unimplemented (zero code, zero tests).

What it does: Measures how recently PoC (Proof-of-Concept) activity occurred for a given CVE by querying multiple sources and producing a freshness score (0–100) indicating ongoing attacker interest.

Sources Checked

  1. GitHub repos — recently pushed repositories mentioning the CVE (sorted by update time)
  2. GitHub stars — community interest proxy via aggregate stargazer count
  3. NVD exploit references — exploit-tagged URLs from the NVD record
  4. Trickest/cve index — known PoC links from the continuously-updated index
  5. Exploit-DB — entries referencing the CVE (via GitHub code search on the mirror)

Freshness Score Classification

Score Classification Meaning
80–100 very_fresh Active PoC development in the last 7 days
50–79 fresh PoC activity in the last 30 days
20–49 aging PoC activity in the last 90 days
0–19 stale No recent PoC activity detected

Usage

manus-agent poc-freshness CVE-2024-3094
manus-agent poc-freshness CVE-2024-3094 --output json | jq .freshness_score

Files Changed

  • src/manus_agent/tools/get_poc_freshness.py — new tool implementation
  • src/manus_agent/cli.py — CLI dispatch + parser + _SUBCOMMANDS entry
  • tests/test_get_poc_freshness.py — 69 new tests (100% mocked, no real HTTP)

Design Decisions

  • Zero new dependencies (uses requests already in the project)
  • Retry/back-off on all HTTP calls (429 handling + exponential backoff)
  • GITHUB_TOKEN/GH_TOKEN support for higher rate limits
  • NVD_API_KEY support for NVD requests
  • Graceful degradation: if any source fails, the others still contribute
  • Strands TOOL_SPEC interface for agent integration
  • Weighted composite scoring with configurable weights
  • Time-decay function for recency-based scoring

Test Results

1227 passed (baseline 1158 + 69 new), 0 failures.

Duplicate Check

Checked all 50 open PRs (#145#194) and 30 most recent merged PRs. No existing open or merged PR covers PoC freshness measurement. Closest related work:

manus-use pushed a commit that referenced this pull request Jun 29, 2026
…n PRs roadmap, and changelog section

- poc-search subcommand (PR #62): multi-source PoC aggregator (trickest, VulnCheck KEV, Exploit-DB, GitHub, NVD)
- changelog subcommand (PR #66): conventional-commit release automation
- VulnCheck enrichment section: VULNCHECK_API_KEY optional, vulncheck-kev + nist-nvd2 indexes
- Updated 8-step VI pipeline description to include VulnCheck KEV in step 2, patch diff/exploit complexity/version range in step 6
- Coming Soon table: 9 open PRs (#51 silent-patches, #53 cve-timeline, #54 version-range, #58 vendor-response, #60 poc-freshness, #63 blast-radius, #64 sbom-scan, #65 temporal-priority, #67 cluster-variants)
- Updated built-in tools list to mention VulnCheck KEV and new VI tools
- Added Changelog section linking to CHANGELOG.md
- Updated Table of Contents with Changelog entry
- Expanded Security examples to include poc-search and changelog
@manus-use
manus-use force-pushed the feat/poc-freshness branch from 2597390 to c1f8a19 Compare July 19, 2026 00:13
@manus-use manus-use changed the title feat(tools): PoC freshness checker — check_poc_freshness tool + manus-use poc-freshness subcommand feat: add poc-freshness CLI subcommand and get_poc_freshness tool Jul 19, 2026
@manus-use manus-use changed the title feat: add poc-freshness CLI subcommand and get_poc_freshness tool feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+66 tests) Aug 11, 2026
@manus-use manus-use changed the title feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+66 tests) feat(tools): get_poc_freshness — PoC freshness scorer + CLI subcommand (+66 tests) Aug 14, 2026
@manus-use manus-use changed the title feat(tools): get_poc_freshness — PoC freshness scorer + CLI subcommand (+66 tests) feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+72 tests) Aug 16, 2026
@manus-use manus-use changed the title feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+72 tests) feat(tools): poc_freshness — PoC activity recency scorer + CLI subcommand (+98 tests) Aug 20, 2026
@manus-use manus-use changed the title feat(tools): poc_freshness — PoC activity recency scorer + CLI subcommand (+98 tests) feat(tools): poc_freshness — PoC freshness scorer + CLI subcommand (+75 tests) Aug 25, 2026
@manus-use manus-use changed the title feat(tools): poc_freshness — PoC freshness scorer + CLI subcommand (+75 tests) feat(tools): get_poc_freshness — PoC freshness checker + CLI subcommand (+69 tests) Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant