Skip to content

Back to the catalog

capitalone/VulnHunter
github.comrepo

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.

TL;DR Capital One's open-source agentic AI SAST tool that reasons like an attacker (not pattern-match) using Claude Opus/Claude Code, with a falsification engine to cut false positives and auto-generate fixes.
Document

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 git and 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.sh

Windows uses .\install.cmd. Run the scanner:

claude --model opus --add-dir ~/.claude/skills/vulnhunt --add-dir ~/.claude/skills/vulnhunt/phases
# then: /vulnhunt

Fixer (first pip install -e ".[dev]" inside vulnhunter-fix/):

claude --model opus --add-dir ~/.claude/skills/vulnhunter-fix
# then: /vulnhunter-fix

Verifier:

/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 scan

Caveats

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.