VulnHunter: Capital One's agentic AI code security tool
TL;DR Highlight
Capital One open-sourced a security agent that tries to disprove its own findings to cut false positives.
Who Should Read
A security-minded backend developer who spends too much time triaging false positives from SAST tools.
Core Mechanics
- Traces forward from entry points
- The post says conventional tools work sink-first, searching backward from dangerous code for a hypothetical attacker.
- VulnHunter starts at APIs, network messages, or file uploads and reasons forward through the logic.
- It tries to disprove its own findings
- After finding a vulnerability, it runs a reasoning step (falsification engine) built to break its own argument.
- It looks for broken assumptions and gaps in the exploit path, and discards unsupported findings.
- Only survivors get a fix
- It gathers evidence across the codebase to map the full exploit path.
- It explains the defect, the attacker's gained access, and proposes code changes for review.
- Needs Claude Opus 4.8 and Claude Code
- It is optimized for Claude Opus 4.8 and first implemented as a Claude Code skill.
- The post only says the framework may work with other harnesses and models.
Community Reactions
- Opinion: it's a methodology, not a tool
- One commenter says it's mostly markdown files describing how to run an assessment.
- They add that security consultancies already use such methodologies, so putting them into an LLM makes sense.
- Pushback: not truly open source
- Commenters say it needs Claude Code CLI and Opus access, so it isn't really open source.
- One commenter applied to Anthropic's verification portal weeks ago and never heard back.
- Opinion: no moat, and false security worry
- A commenter says these security harnesses all look alike, so there is no moat.
- Links to similar tools from Visa and Cloudflare were shared.
- Another commenter says such tools find real bugs but worries about a false sense of security.
- Opinion: find-and-falsify is interesting
- One commenter found it interesting that the same model both finds and falsifies findings.
- Others asked Capital One to share more detail on internal use.
How to Apply
- Run the falsification prompt on one module today
- Pick one API handler under security review and paste the prompt below into Claude.
- Check only the findings that survive the disproof step.
- Add a disproof step to existing scanner output
- Take 10 items from your SAST false-positive list and trace them forward from entry points.
- Mark cases where the attack path breaks as likely false positives.
- Pilot the Quickstart on one internal repo
- First confirm you have access to Claude Opus and Claude Code.
- Run it on a small repo and compare results with your manual triage.
Try It
# Paste into Claude or Claude Code (simplified version of the VulnHunter approach)
You are a security reviewer. Find vulnerabilities in the code below that an external attacker could exploit.
Step 1: List attacker-reachable entry points (APIs, network messages, file uploads).
Step 2: From each entry point, trace forward through data transformations and security checks, and list candidate vulnerabilities.
Step 3: Try to disprove each candidate. Look for unsupported assumptions, gaps in the exploit path, and conditions that block the attack. Discard candidates that rely on unsupported assumptions.
Step 4: For survivors only, give a defect explanation, the access the attacker gains, and a minimal code fix.
Code:
{{code}}
Next step: also print the discarded candidates and why, to check whether the disproof step is sound.Terminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Harness2 by Google Research – Recursive Agent Harnessing
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.