Skip to content

feat(tools): cve_timeline — CVE lifecycle event timeline reconstructor + CLI subcommand (+79 tests) - #53

Open
manus-use wants to merge 1 commit into
mainfrom
feat/cve-timeline
Open

feat(tools): cve_timeline — CVE lifecycle event timeline reconstructor + CLI subcommand (+79 tests)#53
manus-use wants to merge 1 commit into
mainfrom
feat/cve-timeline

Conversation

@manus-use

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

Copy link
Copy Markdown
Owner

Summary

Implements the cve_timeline tool and manus-agent cve-timeline CLI subcommand — both documented in the README but previously unimplemented (zero code existed).

What it does

Reconstructs the full event timeline for a CVE by gathering dates from multiple sources:

  • NVD — publish date, last modification date, CVSS score, patch/advisory references
  • EPSS — score history with spike detection (≥0.10 jump flags new exploitation activity)
  • CISA KEV — date added to Known Exploited Vulnerabilities catalog, ransomware association
  • Reference URLs — extracts dates from patch/advisory URLs when available

Produces a chronological event list plus computed time deltas (e.g., "days from publish to confirmed exploitation").

Usage

manus-agent cve-timeline CVE-2021-44228
manus-agent cve-timeline CVE-2021-44228 --output json

Design

  • Zero new dependencies — uses only requests (already in project)
  • Retry/back-off on all HTTP calls (429, 500-504, connection errors)
  • NVD_API_KEY support for higher rate limits
  • Graceful degradation — if any source fails, the timeline still returns partial results from the other sources
  • Strands TOOL_SPEC interface — usable by the VI agent programmatically
  • 79 fully-mocked tests — no real HTTP calls

Test categories (79 tests)

  • TOOL_SPEC contract (4)
  • Input validation (8)
  • NVD fetch (6)
  • EPSS fetch (6)
  • KEV fetch (4)
  • HTTP retry logic (4)
  • Date utilities (10)
  • URL date extraction (5)
  • Timeline assembly (9)
  • Text formatting (5)
  • JSON formatting (2)
  • Strands handler (4)
  • CLI subcommand (7)
  • Event icons (2)
  • Edge cases (5)

Duplicate check

Checked all 50 open PRs (#140#189) and 30 merged PRs. No existing open or merged PR covers CVE timeline reconstruction. Closest PRs reviewed:

Files changed

  • src/manus_agent/tools/cve_timeline.py (new — tool implementation)
  • src/manus_agent/cli.py (added cve-timeline to _SUBCOMMANDS, parser, dispatch, and _run_cve_timeline)
  • tests/test_cve_timeline.py (new — 79 tests)

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/cve-timeline branch from 9cabdf4 to b87e17d Compare July 2, 2026 21:14
@manus-use manus-use changed the title feat: CVE timeline view — manus-use timeline CVE-XXXX-YYYY feat(tools): CVE event timeline — get_cve_timeline tool + manus-agent cve-timeline CLI Jul 2, 2026
@manus-use manus-use changed the title feat(tools): CVE event timeline — get_cve_timeline tool + manus-agent cve-timeline CLI feat(tools): get_cve_timeline — CVE event timeline reconstructor + CLI subcommand (+93 tests) Aug 16, 2026
@manus-use manus-use changed the title feat(tools): get_cve_timeline — CVE event timeline reconstructor + CLI subcommand (+93 tests) feat(tools): cve_timeline — full CVE event timeline reconstructor + CLI subcommand (+85 tests) Aug 18, 2026
@manus-use manus-use changed the title feat(tools): cve_timeline — full CVE event timeline reconstructor + CLI subcommand (+85 tests) feat(tools): cve_timeline — CVE lifecycle event timeline reconstructor + CLI subcommand (+79 tests) Aug 21, 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