Visa Vulnerability Agentic Harness (VVAH)
VVAH is Visa's open-source agentic harness that runs an eleven-stage (S0–S11) LLM pipeline to discover, verify, report, and optionally remediate/validate application vulnerabilities, built on learnings from Anthropic's Project Glasswing. It combines threat-modeled discovery, multi-lens adversarial analysis, interprocedural taint analysis, and a beta live-HTTP "exploit verification" stage (S6) that proves exploitability and supports regression-testing fixes via ev-replay, outputting Markdown and SARIF 2.1.0 findings with CVSS/CWE data.
What it is
VVAH is Visa's open-source LLM harness for autonomous vulnerability discovery, remediation, and validation, built on learnings from Project Glasswing (Anthropic's AI-assisted vulnerability research initiative). The summary covers the pipeline breadth; what matters for acting is that the shipped default profile stops after Phase 3 (S9) — remediation and validation (S10–S11) are optional and disabled unless you enable them, and the new exploit-verification stage is off by default and heavily fenced.
How it works
The stages group into four phases: Discovery & Modeling (S1–S3), Deep Dive & Verification (S4–S6), Synthesis & Reporting (S7–S9), and optional Remediation & Validation (S10–S11). Seeding differs by profile: default.yaml and full.yaml derive the S0 seed from the model; taint.yaml uses rules mode and requires operator-supplied source/sink YAML. Exploit verification (S6) attacks a candidate finding with real HTTP traffic to prove exploitability, attaching evidence instead of waiting on manual reproduction. It is additive and positive-only — it never drops a finding, and the static verifier keeps the verdict.
Preconditions / Affected
- Interprocedural taint analysis covers Python/Java/C# ("supported application languages").
- Exploit verification is Beta, API-only, localhost-only, and off unless
EV_API_COLLECTIONis set. - Any role routed via
cli,sdk,openai, ordeepagentssends prompt data to that provider endpoint (Anthropic/OpenAI or your gateway) — a real data-egress consideration for proprietary code. - Authorized use only: scan targets you own or have explicit permission to test.
What to do
- To get remediation/validation, explicitly enable S10–S11; the default profile does not run them.
- Regression-test a fix with the exploit that found the bug:
vvaharness ev-replay- Validate a collection and target with no model spend:
--stop-after ev- Provide EV auth only through
EV_AUTH_*environment variables — never a profile or CLI flag. Be aware other secrets can still reach the target on the wire: tokens saved inside collection requests,EV_TARGET_CLIENT_KEY_PASSPHRASE, and any hardcoded credential the attacker agent finds in the repo and replays.
Caveats
- Findings and fixes are LLM-generated triage candidates requiring human review.
- The coverage backstop for unrecognized files is best-effort, not a guarantee (see docs/security.md).
- The repo is not accepting external code contributions; GitHub Issues are open for bugs/docs/setup/feature requests only.
- The design premise is that triage speed, not discovery, is the bottleneck — the primary metric is Mean Time to Adapt (MTTA), elapsed time from AI-discovered exploitability to a validated fix in production.
Technologies named here
- Visa Vulnerability Agentic Harness
- Project Glasswing
- vvaharness
- Exploit verification
- vvaharness ev-replay
- Claude Code CLI
- SARIF 2.1.0 reporting
- SARIF
- CVSS
- Python
- Anthropic
- OpenAI
- Claude
Techniques named here
- S0 static seed
- Phase 1 — Discovery & Modeling
- Phase 2 — Deep Dive & Verification
- Phase 3 — Synthesis & Reporting
- Phase 4 — Remediation & Validation
- Threat modeling before analysis
- Multi-agent deterministic voting
- Reachable-code analysis
- Interprocedural taint analysis
- Coverage backstop
- Exploit verification
- ev-replay regression testing
Related in AppSec
Flowise MCP Security Bypass Enables RCE
Inside an Oracle Database SQL Injection Attack | Huntress
OASIS
