Show HN: Mcploitable – The "Metasploitable" of the Model Context Protocol Mcploitable, a new open-source project by agileAlligator, provides seven deliberately vulnerable Model Context Protocol (MCP) servers and three guided simulations that together cover the OWASP Top 10 for Agentic Applications (ASI) 2026. The servers, including a mail assistant, analytics assistant, and account-recovery bot, each harbor a latent vulnerability, with one achieving real code execution, and are designed to be run only inside network-isolated Docker containers. The project aims to help security researchers and developers understand how agentic systems can be compromised, modeled on real-world vulnerabilities such as EchoLeak (CVE-2025-32711) and Vanna.AI (CVE-2024-5565). A collection of deliberately vulnerable MCP servers — the "Metasploitable" of the Model Context Protocol. mcploitable is a set of ordinary-looking MCP https://modelcontextprotocol.io servers — a mail assistant, an analytics assistant, an account-recovery bot, a plugin manager, a calculator, a personal assistant with memory, and a multi-agent ops orchestrator — that each quietly harbour one real vulnerability. Point an agent at them in a lab and watch how agentic systems get compromised. These seven breakable "boxes", plus three further classes that ship as guided demonstrations in ./play , together cover the full OWASP Top 10 for Agentic Applications ASI 2026 . Warning These servers are intentionally vulnerable . One achieves real code execution . Run them only inside the bundled, network-isolated Docker containers. Never expose them to an untrusted network, and never connect them to real credentials, data, or systems. Everything they "leak" is fake. mcploitable-demo-tiny.mp4 Seven breakable boxes attack them with ./play — pick from the menu, type your payload, watch the agent and three guided simulations also in ./play — watch the failure and its deterministic fix : | | Class | Modeled on | Format | Scenario | |---|---|---|---|---| | ASI01 | Agent Goal Hijack | EchoLeak CVE-2025-32711 | box | asi01-mail | | ASI02 | Tool Misuse | Supabase MCP leak | box | asi02-analytics | | ASI03 | Identity & Privilege Abuse | Meta HTS takeover | box | asi03-recovery | | ASI04 | Agentic Supply Chain | SolarWinds / event-stream | box | asi04-plugin | | ASI05 | Unexpected Code Execution | Vanna.AI CVE-2024-5565 | box | asi05-calc | | ASI06 | Memory / Context Poisoning | SpAIware | box | asi06-memory | | ASI07 | Insecure Agent-to-Agent | cross-agent / A2A trust abuse | box | asi07-a2a | | ASI08 | Cascading Failures | planner→executor fault propagation | simulation | asi08 in ./play | | ASI09 | Human-Agent Trust Exploitation | trusted agent steers a human decision | simulation | asi09 in ./play | | ASI10 | Rogue Agents | over-scoped agent action | simulation | asi10 in ./play | Why boxes for the first seven and simulations for the last three — and the empirical L0→L3 results — are in docs/RESULTS.md /agileAlligator/mcploitable/blob/main/docs/RESULTS.md and . /agileAlligator/mcploitable/blob/main/docs/SIMULATIONS.md docs/SIMULATIONS.md Unlike a CTF range, these servers carry no self-awareness : no scoreboard, no capture flags, no "exploit hint" tool, no insecure/hardened switch. Each presents as a mundane, believable tool with innocent descriptions and an ordinary, generic name — nothing in what an agent or client sees tags it as a target. The vulnerability is latent — you discover and trigger it, and success is observed by its effect data that actually leaves, code that actually runs , not credited by the server. The OWASP ASI class mapping lives only in this documentation and in the test suite / module filenames — never in an agent-visible name. | Server | Looks like | Latent vulnerability ASI | |---|---|---| mail-assistant | Inbox / mail helper | ASI01 Agent Goal Hijack — an untrusted email, read via read message , invites the agent to fold confidential figures into an image URL; the client renderer harness/echoleak/ auto-fetches it EchoLeak-class zero-click exfil | analytics-bi | NL analytics + support triage | ASI02 Tool Misuse — a poisoned support ticket steers a run query on a service role-equivalent connection to read integration tokens / employees PII and exfil via a customer-visible reply; deterministic ASI02 ENFORCE controls double as difficulty tiers | account-recovery | Account-recovery bot | ASI03 Identity & Privilege Abuse — Meta HTS-style confused deputy. send reset binds delivery to a verified on-record contact only as of the correct control tier; the CTF ladder's L1 recognition-only and L2 mutable recovery-contact record, poisoned via a legitimate-looking one-time-code self-service flow are intentionally HARDER-THAN-REAL — Meta shipped with zero checks at all the lab's faithful L0 | plugin-hub | Plugin/tool manager | ASI04 Agentic Supply Chain MCP tool poisoning — the registry is researcher-writable publish plugin ; a published plugin must first be adopted over the honestly-signed weather-live competitor, after which its tool output forecast template — attacker-controlled text the agent reads on every get forecast call talks the agent into fetching the workspace's saved credentials get workspace config and handing them back through get forecast api key=… . No install-time code runs — the agent performs every step | calc | Calculator / data analysis | ASI05 Unexpected Code Execution — eval / exec behind innocuous "math"/"analysis" tools Vanna-class; the exploit is model-blind, so its L1/L2 are deterministic ingestion filters rather than a recognition rung | memo-assistant | Personal assistant with memory | ASI06 Memory / Context Poisoning — a note planted in the assistant's durable memory detonates in a later, unrelated session because the agent trusts its own memory SpAIware-class ; the poison folds a first-party secret into an auto-fetched image-URL footer | ops-orchestrator | Multi-agent ops orchestrator | ASI07 Insecure Agent-to-Agent Comms — the orchestrator grants a peer agent's message off a shared bus the authority to trigger a privileged capability, releasing an authorized payout to an attacker-controlled recipient | Each box lives under harness/lab/boxes/ ; see docs/RESULTS.md /agileAlligator/mcploitable/blob/main/docs/RESULTS.md for the empirical L0→L3 results. Detailed per-server design and solution notes are maintainer-only docs/operator/ , not shipped with the lab so the boxes stay unspoiled.Play the breakable boxes interactively with ./play an attacker REPL — pick a box and level, type your payload, watch the agent . The three OWASP classes that aren't breakable boxes ASI08 cascading failures, ASI09 human-agent trust exploitation, ASI10 rogue agents ship as guided demonstrations in the same ./play menu — see docs/SIMULATIONS.md /agileAlligator/mcploitable/blob/main/docs/SIMULATIONS.md for why those are simulations rather than boxes. docker compose build docker compose run --rm -T mail one isolated stdio server per vuln docker compose run --rm -T calc calc = real code execution; its danger profile only keeps it out of a plain up , not an explicit run Each compose service runs with no network , a read-only filesystem , dropped capabilities , and as a non-root user — so even the real code execution stays boxed inside the container. The bundled install.sh builds the image and registers all seven servers: ./install.sh Docker-isolated recommended ./install.sh --local local console scripts, no Docker unsandboxed ./install.sh --uninstall remove them Or wire a client up by hand — one container per server: { "mcpServers": { "mail-assistant": { "command": "docker", "args": "compose", "-f", "/path/to/mcploitable/docker-compose.yml", "run", "--rm", "-T", "mail" } } } A breakable CTF variant of these servers lives under harness/lab/ — same servers, same vulnerabilities, but each is now a scoped scenario with a level ladder L0 surface - L1 / L2 capturable flags - L3 unwinnable correct-control wall a student attacks through one artifact-submission entry point harness/lab/submit.sh . See harness/lab/README.md for the rules of engagement two-plane rule, level ladder, scoring contract — it deliberately contains no payloads or answers. | scenario | maps to | |---|---| asi01-mail | ASI01 Agent Goal Hijack — EchoLeak-class CVE-2025-32711 zero-click image-URL exfil; submit one .eml -shaped email into the inbox | asi02-analytics | ASI02 Tool Misuse Supabase-MCP-leak-class — file a support ticket harness/lab/submit.sh asi02-analytics