MCP Security · Defense-Coverage Benchmark

How much of the MCP attack surface does each security proxy actually cover?

A vendor-neutral benchmark. Each tool is driven through its real code against 37 MCP attack vectors, crosswalked to the NIST AI RMF and the OWASP LLM & Agentic Top 10. Results are measured, with matched benign controls — not self-reported.

Corpus: 66 cases Vectors: 37 Covered by ≥ 1 tool: 32/37 Repository Zenodo DOI Preprint

Coverage of the full attack surface

ToolClassCorpusRobustCoverageCapability● enforce◐ detectnoneFalse pos.
mcp-bastionruntime-proxy 66% (24.6/37) 74% (27.5) 2395 0 / 66
mcp-firewallruntime-proxy 8% (3.0/37) 11% (4.0) 4033 0 / 66
pipelockegress-firewall 4% (1.3/37) 7% (2.5) 1333 0 / 66
null-baselinenone 0% (0.0/37) 0% (0.0) 0037 0 / 66

Weighting: enforce = 1.0, detect = 0.5, none = 0, over 37 vectors. CorpusRobustCoverage (headline) is the mean across all fixtures of a vector, including evasion variants; Capability is best-case (detects ≥ 1 fixture). Where the two diverge, the tool is brittle to evasion. A vector counts only if the tool flags the attack and stays clean on the matched benign control (else it's a false positive); a false positive on any benign variant scores that vector 0. Zero false positives across all tools.

Scope of this number: CorpusRobustCoverage is a descriptive coverage measure over a fixed, non-exhaustive corpus — not a procurement or substitutability ranking. A higher score does not mean a tool better closes your deployment's gap, and tools at different architectural layers (e.g. a runtime proxy vs. an egress firewall) are not substitutable. Read the per-vector matrix and the defense-in-depth view for decisions. Scoping clarified and the original metric fix credited to M. Brighindi; a decision-indexed RequiredGapClosure metric is planned — see CHANGELOG-scoring.

Per-vector coverage matrix

VectorLayermcp-bastionmcp-firewallpipelocknull-baseline
Tool poisoningtool◐
Tool name collision / shadowingclient◐
Rug pull / dynamic capability mutationtool●
Out-of-scope parameter injectionserver●
Prompt injection via tool resultstool◐◐
Indirect / retrieval injectiontool●●◐
Cross-tool data exfiltration / confused deputyclient●●●
Tool-transfer / cross-server chaininghost-orchestration●
False-error escalationtool◐
Package / name squatting in registryregistry-supply-chain
Supply-chain poisoning (unverified provenance)registry-supply-chain
Configuration driftserver◐
Sandbox escapeserver
Schema / validation bypassserver●
Man-in-the-middle (transport)transport◐
DNS rebinding (local servers)transport●
Server impersonation / identity spoofingregistry-supply-chain●
Excessive permission / privilege escalationhost-orchestration◐
Credential / token theft via passthroughhost-orchestration●●
Consent fatigue / over-broad grantsclient
Command injection in tool executionserver●
System-prompt / context leakage via toolsclient◐◐
Mid-session tool injection (MSTI)client●
Multi-tool split poisoning (ShareLock)tool◐
Header/body routing desync (HeaderMismatch)transport●
MRTR requestState forgery / replayserver●
List-result cache poisoning / stale-cache defense suppressionclient●
MRTR in-band input phishing / sampling injectionclient●
Task authorization bypassserver●
MCP Apps sandbox non-conformancehost-orchestration
Roots deprecation: no enforced filesystem boundaryhost-orchestration●●
Transport / revision downgradetransport●
Delegated-token audience confusion (lateral misroute or passthrough)host-orchestration●
Delegation subject mixing (one request, several users)host-orchestration●
Stale or over-long delegate token relayedhost-orchestration●
Delegation chain launderinghost-orchestration●
Delegate token signature forgeryserver●
● enforce (blocks) ◐ detect (warns) not covered

Defense-in-depth: the tools cover different layers; 32 of 37 vectors are covered by at least one tool and 5 by none (registry/supply-chain, OS-isolation, and semantic vectors that lie outside a runtime proxy's reach). No single proxy is sufficient.

Evasion robustness

AttackEncodingmcp-bastionmcp-firewallpipelocknull-baseline
header-body-desyncbase64-sentinel●
response-injectionhomoglyph substitution◐◐
response-injectionbase64-wrapped payload◐◐
tool-poisoningzero-width / bidi-control characters◐

Robustness (evasion fixtures detected): mcp-bastion 4/4 · mcp-firewall 0/4 · pipelock 2/4 · null-baseline 0/4. The tools are robust to different obfuscations — no single tool survives all of them.

Framework mapping

Every attack vector is crosswalked to the frameworks security and compliance teams govern by. NIST AI RMF is a U.S. federal framework (NIST, Dept. of Commerce); OWASP is an international open standard; STRIDE is the classic threat-modeling taxonomy.

VectorLayerSTRIDENIST AI RMFOWASP LLM 2025OWASP Agentic 2026NSA guidance
Tool poisoningtoolTampering/ElevationOfPrivilegeMAP, MEASURE, MANAGELLM01, LLM06ASI01, ASI02RT, AUTHArt.15(5)A.6.2.6, A.4.4, A.10.3
Tool name collision / shadowingclientSpoofing/TamperingMAP, MANAGELLM01, LLM03ASI01, ASI04AUTH, RTArt.15(5)A.6.2.6, A.4.4, A.10.3
Rug pull / dynamic capability mutationtoolTamperingMEASURE, MANAGELLM03, LLM06ASI04AUTH, RTArt.15(5), Art.14, Art.55(1)(d), Art.72A.6.2.6, A.4.4, A.10.3
Out-of-scope parameter injectionserverTampering/ElevationOfPrivilegeMEASURE, MANAGELLM05, LLM06ASI02RT, AUTHArt.15(5), Art.55(1)(d)A.6.2.6, A.6.2.4, A.9.2
Prompt injection via tool resultstoolTampering/ElevationOfPrivilegeMEASURE, MANAGELLM01, LLM05ASI01RTArt.15(5)A.6.2.6, A.7.5, A.10.3
Indirect / retrieval injectiontoolTamperingMEASURE, MANAGELLM01, LLM08ASI01RTArt.15(5), Art.55(1)(d)A.6.2.6, A.7.5
Cross-tool data exfiltration / confused deputyclientInformationDisclosure/ElevationOfPrivilegeMAP, MEASURE, MANAGELLM02, LLM06ASI02, ASI03RT, SEGArt.15(5), Art.73A.6.2.6, A.8.4
Tool-transfer / cross-server chaininghost-orchestrationElevationOfPrivilegeMAP, MANAGELLM06ASI02, ASI03AUTH, SEG, RTArt.15(5), Art.73A.6.2.6, A.10.3, A.8.4
False-error escalationtoolElevationOfPrivilege/DenialOfServiceMEASURE, MANAGELLM01, LLM06ASI01, ASI02RT, LOGArt.15(5), Art.12, Art.14A.6.2.6, A.6.2.8, A.10.3
Package / name squatting in registryregistry-supply-chainSpoofingGOVERN, MAPLLM03ASI04AUTHArt.15(5), Art.55(1)(d)A.6.2.6, A.10.3
Supply-chain poisoning (unverified provenance)registry-supply-chainTampering/SpoofingGOVERN, MAP, MANAGELLM03, LLM04ASI04AUTHArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.10.3, A.8.4
Configuration driftserverTamperingGOVERN, MEASURE, MANAGELLM03ASI04LOG, AUTHArt.15(5), Art.12, Art.26, Art.55(1)(d), Art.72A.6.2.6, A.6.2.8, A.6.2.5
Sandbox escapeserverElevationOfPrivilegeMANAGE, MEASURELLM06ASI02, ASI03, ASI05RTArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.6.2.4, A.6.2.5, A.8.4
Schema / validation bypassserverTampering/ElevationOfPrivilegeMEASURE, MANAGELLM05ASI02RTArt.15(5), Art.55(1)(d)A.6.2.6, A.6.2.4
Man-in-the-middle (transport)transportTampering/InformationDisclosure/SpoofingMANAGE, MEASURELLM02ASI03, ASI07RT, AUTHArt.15(5), Art.55(1)(d)A.6.2.6, A.6.2.5
DNS rebinding (local servers)transportSpoofing/ElevationOfPrivilegeMANAGE, MEASURELLM06ASI03, ASI07AUTH, RTArt.15(5), Art.55(1)(d)A.6.2.6, A.6.2.5
Server impersonation / identity spoofingregistry-supply-chainSpoofingGOVERN, MAP, MANAGELLM03ASI03, ASI04AUTHArt.15(5), Art.55(1)(d), Art.72A.6.2.6, A.10.3
Excessive permission / privilege escalationhost-orchestrationElevationOfPrivilegeGOVERN, MAP, MANAGELLM06ASI03AUTHArt.15(5), Art.14, Art.26, Art.55(1)(d)A.6.2.6, A.6.2.5, A.9.2
Credential / token theft via passthroughhost-orchestrationInformationDisclosure/ElevationOfPrivilegeGOVERN, MANAGELLM02, LLM06ASI03RT, SEG, AUTHArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.8.4
Consent fatigue / over-broad grantsclientElevationOfPrivilege/RepudiationGOVERN, MANAGELLM06ASI03AUTHArt.15(5), Art.14, Art.26A.6.2.6, A.6.2.5, A.9.2
Command injection in tool executionserverElevationOfPrivilege/TamperingMEASURE, MANAGELLM05ASI02, ASI05RTArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.6.2.4, A.8.4
System-prompt / context leakage via toolsclientInformationDisclosureMEASURE, MANAGELLM07, LLM02ASI01RT, LOGArt.15(5), Art.12A.6.2.6, A.6.2.8
Mid-session tool injection (MSTI)clientTampering/SpoofingMEASURE, MANAGELLM01, LLM06ASI01, ASI04AUTH, LOGArt.15(5), Art.12, Art.14, Art.72A.6.2.6, A.6.2.8, A.4.4, A.10.3
Multi-tool split poisoning (ShareLock)toolTamperingMEASURE, MANAGELLM01, LLM03ASI01, ASI04RT, LOGArt.15(5), Art.12, Art.55(1)(d)A.6.2.6, A.6.2.8, A.4.4, A.10.3
Header/body routing desync (HeaderMismatch)transportTampering/ElevationOfPrivilegeMEASURE, MANAGELLM06ASI02, ASI03AUTH, RTArt.15(5), Art.55(1)(d)A.6.2.6, A.6.2.4
MRTR requestState forgery / replayserverTampering/Spoofing/ElevationOfPrivilegeMEASURE, MANAGELLM06ASI03, ASI09AUTH, RTArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.6.2.4, A.8.4
List-result cache poisoning / stale-cache defense suppressionclientTamperingMEASURE, MANAGELLM01, LLM03ASI01, ASI04, ASI06RT, LOGArt.15(5), Art.12, Art.72A.6.2.6, A.6.2.8, A.4.4, A.10.3
MRTR in-band input phishing / sampling injectionclientSpoofing/InformationDisclosureMAP, MEASURE, MANAGELLM01, LLM02ASI01, ASI03, ASI09AUTH, RTArt.15(5), Art.14A.6.2.6, A.10.3
Task authorization bypassserverElevationOfPrivilege/InformationDisclosure/SpoofingMEASURE, MANAGELLM02, LLM06ASI03AUTH, LOGArt.15(5), Art.12, Art.55(1)(d)A.6.2.6, A.6.2.8, A.6.2.4
MCP Apps sandbox non-conformancehost-orchestrationTampering/InformationDisclosureMAP, MANAGELLM05, LLM02ASI05, ASI09RTArt.15(5), Art.14, Art.26A.6.2.6, A.6.2.5, A.10.3
Roots deprecation: no enforced filesystem boundaryhost-orchestrationElevationOfPrivilege/InformationDisclosureMAP, MANAGELLM06, LLM02ASI02, ASI03SEG, AUTHArt.15(5), Art.26, Art.55(1)(d)A.6.2.6, A.6.2.4, A.6.2.5, A.9.2
Transport / revision downgradetransportTampering/SpoofingMEASURE, MANAGEASI07AUTH, RTArt.15(5), Art.26, Art.55(1)(d)A.6.2.6, A.6.2.5
Delegated-token audience confusion (lateral misroute or passthrough)host-orchestrationSpoofing/ElevationOfPrivilegeMEASURE, MANAGELLM06ASI03, ASI07AUTH, LOGArt.15(5), Art.12, Art.73A.6.2.6, A.6.2.8, A.6.2.4, A.6.2.5, A.8.4
Delegation subject mixing (one request, several users)host-orchestrationSpoofing/ElevationOfPrivilegeMEASURE, MANAGELLM06ASI03, ASI07AUTH, LOGArt.15(5), Art.12, Art.73A.6.2.6, A.6.2.8, A.6.2.4, A.8.4
Stale or over-long delegate token relayedhost-orchestrationSpoofing/ElevationOfPrivilegeGOVERN, MEASURE, MANAGELLM06ASI03, ASI07AUTH, LOGArt.15(5), Art.12A.6.2.6, A.6.2.8, A.6.2.4
Delegation chain launderinghost-orchestrationElevationOfPrivilege/RepudiationGOVERN, MEASURE, MANAGELLM06ASI03, ASI07AUTH, LOGArt.15(5), Art.12, Art.26A.6.2.6, A.6.2.8, A.6.2.5, A.9.2
Delegate token signature forgeryserverSpoofing/Tampering/ElevationOfPrivilegeGOVERN, MEASURE, MANAGELLM06ASI03, ASI07AUTH, RTArt.15(5), Art.55(1)(d), Art.73A.6.2.6, A.6.2.4, A.8.4

NIST AI RMF: GOVERN · MAP · MEASURE · MANAGE. OWASP LLM: LLM01 Prompt Injection · LLM02 Sensitive Info Disclosure · LLM03 Supply Chain · LLM04 Data/Model Poisoning · LLM05 Improper Output Handling · LLM06 Excessive Agency · LLM07 System Prompt Leakage · LLM08 Vector/Embedding. OWASP Agentic: ASI01 Agent Goal Hijack · ASI02 Tool Misuse · ASI03 Identity & Privilege Abuse · ASI04 Agentic Supply Chain. NSA guidance (May 2026): AUTH Authentication & Access Control · LOG Monitoring & Logging · SEG Data Classification & Segmentation · RT Runtime Controls.

References

Frameworks: NIST AI RMF 1.0 (U.S. federal) · OWASP Top 10 for LLM Apps (2025) · OWASP Top 10 for Agentic Apps (2026) · STRIDE · NSA MCP Security CSI (U.S. federal — NSA AI Security Center, May 2026).
MCP security research: SoK 2512.08290 · Formal framework 2604.05969 · STRIDE/DREAD 2603.22489 · MCP-DPT 2604.07551 · MSB 2510.15994 · MCPTox 2508.14925 · ETDI 2506.01333 · Trustworthy MCP Registry · WebMCP/MSTI 2606.06387 · ShareLock 2606.27027.
MCP protocol: Specification · Registry.

Method & honesty

Each adapter drives the tool's actual detection code or CLI — never a mock. A defender is scored only on what it inspects at runtime (a proxy that ignores tool results scores none there, even if its rules would match the text in isolation). Absolute totals are corpus-dependent; the per-vector matrix is the more reliable read. Scored tools run locally and deterministically; cloud-model tools are observed, not scored. Full methodology and prior-art positioning are in the repository.