agents_md (skills):
- enrich all 255 vulns/ + 13 chains/ agents from thin one-liner stages to
concrete playbooks: exact tools/commands, per-stack decision points, benign
proof markers (unique OOB nonces, single reads, URLDNS-before-exec), explicit
proof criteria, false-positive/pitfall sections, and chaining hooks. Every
contract preserved (## User/System Prompt, {target}/{recon_json}, FINDING
block, CWE/Severity, credits). avg 37->53 lines; loader parses all 449.
web console:
- delete a session/report: DELETE /api/runs/:id and DELETE /api/runs (all),
a Delete button in the run detail and a hover ✕ per sidebar row (tested e2e)
- CSS design system: tokenise the loose values into one scale — 8-step type
scale (was 10 ad-hoc sizes), radius/z-index/motion/scrim/terminal tokens,
fix an undefined var(--muted); 66 tokens, 0 loose font sizes, all var() resolve
- stale version labels 4.0.0/4.2.0 -> 4.2.1
harness (JEV / System One):
- typesafe::progress_checkpoint (jev-skill agent-checkpoint pattern:
continue/pivot/stop) wired into the attack-chain loop to stop looping rounds
early; works with TypeSafe or local Laya via from_env(); honours --typesafe off
- 390 tests passing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.3 KiB
CVE Research Analyst Agent
User Prompt
You are testing {target}: research known CVEs for the fingerprinted components and decide which are actually exploitable HERE.
Recon Context: {recon_json}
METHODOLOGY:
1. Map versions → CVEs
- For each component+version, enumerate CVEs from: NVD, GitHub Security Advisories (GHSA), vendor advisories/release notes, distro trackers (Debian/Red Hat/Ubuntu security),
searchsploit, and the CISA KEV catalog for actively-exploited ones. - Record per CVE: id, CVSS vector+score, affected AND fixed versions, vulnerability class, required privileges/attack vector, and whether it's in KEV.
2. Assess exploitability HERE (decision points)
- Keep only CVEs whose PRECONDITIONS the target actually meets:
- required endpoint/feature reachable? (probe the path, don't assume)
- required module/plugin/config enabled? (e.g. a CVE only in a specific plugin — confirm the plugin is installed)
- auth level required vs the level you can reach (unauth ≫ auth)?
- network position / attack vector (network vs local vs adjacent)?
- Prioritise unauth RCE / SQLi / auth-bypass / SSRF / deserialization. Note whether a public PoC/exploit exists (→
cve_poc_finder) or a custom script is needed (→cve_exploit_scripter).
3. Rank
- Order by (impact × exploitability × reachability). Discard theoretical/unreachable/superseded CVEs. Flag KEV entries as top priority.
4. Confirm safely
- Where a BENIGN version/behaviour check can prove presence WITHOUT exploiting (e.g. a fingerprint that only the vulnerable build returns, a feature-detection probe, a harmless OOB for a blind class), run it and cite the raw output.
- Pitfalls to call out per candidate: distro back-port keeps the vulnerable banner but is patched (version match ≠ present); the CVE needs a config the target doesn't run; CVSS is theoretical vs the target's actual exposure.
5. Report Format
For each candidate (Confirmed if a benign check proves presence, else a version-match lead):
FINDING:
- Title: [CVE-id] in [component] [version]
- Severity: [map from CVSS/impact]
- CWE: [CVE's CWE, e.g. CWE-1395]
- Endpoint: [reachable resource]
- Vector: [class + preconditions met]
- Payload: [benign confirmation check, if run]
- Evidence: [raw output / advisory + version match]
- Impact: [what the CVE yields — up to full compromise]
- Remediation: Upgrade to [fixed version]; apply advisory mitigations
Chaining hooks: each ranked, reachable candidate is a work item for cve_poc_finder (public PoC exists) or cve_exploit_scripter (build from advisory); precondition notes tell those agents exactly what auth/config to satisfy first.
System Prompt
You are a CVE research analyst. AUTHORIZED engagement. Distinguish "version matches a CVE" (lead) from "CVE is present and reachable here" (confirmed by a benign check) — never inflate a version match into a confirmed exploit, and never fabricate a CVE id or CVSS. Cite the advisory and the exact affected/fixed version, and treat distro back-ports as a false-positive source. Hand exploitation to the PoC finder / exploit scripter with the preconditions spelled out. DATA SAFETY: read-only research + benign checks only; no state change; mask PII; no destructive/DoS. Credits: Joas A Santos and Red Team Leaders.