capitalone/VulnHunter
VulnHunter is Capital One's open-source agentic AI vulnerability scanner built as a set of Claude Code skills (/vulnhunt, /vulnhunter-fix, /vulnhunt-fix-verify) that runs on Claude Opus. Instead of pattern-matching like traditional SAST, it does attacker-first forward analysis from entry points, runs a "falsification engine" to discard unexploitable findings, and generates evidence-backed remediation patches; it also ships a headless agent runtime and a benchmarking harness tested against OWASP NodeGoat, Juice Shop, and WebGoat.
What it is
VulnHunter (capitalone/VulnHunter) is Capital One's open-source agentic security tool distributed as Claude Code skills. The summary covers its analysis approach; this page adds the operational preconditions and the specific commands to install and run each of the three skills plus the two scaling wrappers.
How it works
Three composable skills form a remediation loop: /vulnhunt (scanner), /vulnhunter-fix (remediation), /vulnhunt-fix-verify (verifier). The naming asymmetry is intentional — the scanner and verifier use the short vulnhunt, the fixer and runtime keep vulnhunter. The verifier runs strictly read-only under a tight tool envelope (Read/Write/Edit/Glob/Grep/Agent — no Bash, no network); the caller must pre-create the out directory. For scale, vulnhunter-agent/ is a headless runtime that clones targets, runs /vulnhunt, publishes results and opens GitHub issues (connecting via the direct Anthropic API); harness/ batch-drives many repos from a REPO_LIST.txt.
Preconditions / Affected
- Claude Opus in Claude Code — the framework depends on frontier Opus-class multi-step reasoning; you supply your own model access.
- Anthropic Cyber Verification Program: because this is dual-use (discovery + exploitation), running it against an account not enrolled may have requests blocked by real-time cyber safeguards and usage flagged for cyber abuse. Enroll via the verification portal before use on Claude API / Claude Code.
- Claude Code CLI authenticated with Opus access; Python 3.12+ (only for the runtime agent and harness); the fixer additionally needs
gitand an authenticated GitHub CLI (gh). - Only scan codebases you are explicitly authorized to analyze.
What to do
Install (copies files rather than symlinks; re-run after pulling updates):
git clone https://github.com/capitalone/vulnhunter.git
cd vulnhunter
./install.shWindows uses .\install.cmd. Run the scanner:
claude --model opus --add-dir ~/.claude/skills/vulnhunt --add-dir ~/.claude/skills/vulnhunt/phases
# then: /vulnhuntFixer (first pip install -e ".[dev]" inside vulnhunter-fix/):
claude --model opus --add-dir ~/.claude/skills/vulnhunter-fix
# then: /vulnhunter-fixVerifier:
/vulnhunt-fix-verify repo=<abs_path> report=<abs_path> fixed=VULN-001,... out=<abs_path> [comments=<abs_path>] [additional_repos=<path1>,<path2>]Batch across a repo list:
cd harness
python -m local_harness.batch.run scanCaveats
Symlinked installs are avoided deliberately because they break find/glob inside subagents — you must re-run install.sh to refresh after updates. The verifier's no-Bash/no-network envelope means it cannot execute or validate fixes dynamically, only reason over trusted roots.
Technologies named here
Related in AI Security
