The AI agent you're supposed to break.
DVAA is an intentionally vulnerable platform for learning AI agent security, red teaming, and validating security tools. 21 agents across 3 protocol tiers, 12 vulnerability categories, and 22 capture the flag challenges. Run it locally. Break it. Then break it again.
docker run -p 9000:9000 -p 7001-7023:7001-7023 opena2a/dvaa:0.9.3Dashboard on :9000. Agents on :7001 to :7023. Full port map below.
A safe place to break things.
DVAA is the equivalent of DVWA for AI agents. A deliberately insecure platform for security professionals, researchers, and developers to practice attacking and defending AI agent systems in a safe, legal environment.
Practice attacks safely
Run prompt injection, jailbreak, and exfiltration techniques against intentionally weak agents. No production systems involved.
Validate security tools
Use DVAA as a known vulnerable target to verify HackMyAgent, OASB benchmark runners, and your own scanners produce expected findings.
Study defense in depth
Compare LegacyBot against SecureBot side by side to see which controls block which attack classes.
Capture flags
Work through 22 challenges across four difficulty levels. Each challenge has a specific objective, target agent, and flag to capture.
Attack classes mapped to OASB.
Eight of the 12 DVAA vulnerability categories, each cross referenced with the Open Agent Security Benchmark. The remaining four (memory injection, context overflow, tool registry poisoning, and tool MITM) are documented in the DVAA README. Use them as a study path or as a checklist when validating your own scanner.
Prompt Injection
OASB 3.1Inject instructions into agent prompts to override behavior, extract system prompts, or bypass safety filters.
Jailbreak
OASB 3.3Bypass alignment and safety constraints to make agents perform restricted actions or reveal hidden instructions.
Data Exfiltration
OASB 4.3Extract sensitive data from agent memory, RAG stores, or connected databases through indirect channels.
Capability Abuse
OASB 2.2Exploit legitimate agent capabilities beyond intended scope. File access, code execution, or API calls.
Context Manipulation
OASB 8.1Poison or manipulate the context window to alter agent reasoning, inject false data, or cause hallucinations.
MCP Exploitation
OASB 2.3Attack Model Context Protocol servers. Tool poisoning, schema injection, and cross server escalation.
A2A Attacks
OASB 1.4Exploit agent to agent communication. Identity spoofing, message tampering, and delegation chain abuse.
Supply Chain
OASB 6.1Compromise agent dependencies. Malicious tools, poisoned embeddings, and compromised model endpoints.
21 agents across the posture spectrum.
Start with LegacyBot at the Critical level to learn the basics. Work your way up to SecureBot at the Hardened level to see what proper input validation, output filtering, and capability boundaries actually buy you.
| Agent | Port | Protocol | Posture |
|---|---|---|---|
| SecureBot | :7001 | API | Hardened |
| HelperBot | :7002 | API | Weak |
| LegacyBot | :7003 | API | Critical |
| CodeBot | :7004 | API | Vulnerable |
| RAGBot | :7005 | API | Weak |
| VisionBot | :7006 | API | Weak |
| MemoryBot | :7007 | API | Vulnerable |
| LongwindBot | :7008 | API | Weak |
| RAGBot-AIM | :7014 | API | AIM-protected |
| ResearchBot | :7015 | API | Weak |
| ResearchBot-AIM | :7016 | API | AIM-protected |
| FlightBot | :7017 | API | Weak |
| FlightBot-AIM | :7018 | API | AIM-protected |
| RepoBot | :7022 | API | Weak |
| RepoBot-AIM | :7023 | API | AIM-protected |
| ToolBot | :7010 | MCP | Vulnerable |
| DataBot | :7011 | MCP | Weak |
| PluginBot | :7012 | MCP | Vulnerable |
| ProxyBot | :7013 | MCP | Vulnerable |
| Orchestrator | :7020 | A2A | Standard |
| Worker | :7021 | A2A | Weak |
22 challenges. Four levels.
Each challenge ships with a specific objective, target agent, and flag to capture. Total available is 5,900 points across the full challenge set.
Three protocol tiers. Clear port ranges.
Agents are grouped into three protocol tiers, each on its own port range. The dashboard runs separately on port 9000 for orchestration and CTF tracking.
API Agents
:7001 to 7008OpenAI API
SecureBot, HelperBot, LegacyBot, CodeBot, RAGBot, VisionBot, MemoryBot, LongwindBot
MCP Servers
:7010 to 7013MCP JSON-RPC
ToolBot, DataBot, PluginBot, ProxyBot
AIM-protected, research, flight, and repo API Agents
:7014 to 7018, 7022 to 7023OpenAI API
RAGBot-AIM, ResearchBot, ResearchBot-AIM, FlightBot, FlightBot-AIM, RepoBot, RepoBot-AIM
A2A Agents
:7020 to 7021A2A Message
Orchestrator, Worker
Dashboard
:9000HTTP
Web UI
Four ways to get running.
Pick whichever fits your workflow. Docker Hub is the fastest path. The Node.js path is best when you want to read the agent source while you attack it.
Docker Hub
Fastest path. No clone, no build.
Docker Compose
Reproducible local stack with one command.
Node.js
Read the agent source while you attack.
OpenA2A CLI
One verb. Pulls, maps ports, starts.
Validate your security tools.
DVAA is the reference target the OpenA2A toolchain regression tests against. Use it to ground truth your own scanners. If a scanner gives LegacyBot a clean bill of health, the scanner is wrong.
Run HackMyAgent 0.32.0 against LegacyBot to confirm the 310 static checks, 29 NanoMind semantic checks, and 164 adversarial payloads fire as expected.
Use opena2a-cli 0.10.13 with
benchmarkto run the OASB suite against the full agent fleet.Compare findings between SecureBot and LegacyBot to verify your scanner discriminates between hardened and vulnerable postures.
Treat any false negative on LegacyBot as a regression. Treat any false positive on SecureBot as a precision bug.
Start breaking AI agents.
Pull the image. Open the dashboard. Pick a target. The whole stack runs locally with no signup, no account, and no telemetry.
docker run -p 9000:9000 -p 7001-7023:7001-7023 opena2a/dvaa:0.9.3