Tool poisoning stopped being a demo the moment someone counted real HTTP receipts.
On about 2 November 2026, Farooq Shaikh and Biagio Montaruli posted arXiv:2611.03555 for AISec ’26: the first cross-framework measurement of MCP tool poisoning that insists on executed tools and an independent canary, rather than a model that merely drafts a matching call.
mcpvenom drives a 9,720-cell matrix with a dual oracle
The authors unify prior taxonomies into 25 root-cause classes across MCP entry points, then run mcpvenom across 12 frameworks, 18 models, and 45 attack scenarios. The dual oracle separates three evidence tiers: the agent dispatched an attacker tool call, the canary saw network contact, and a secret actually arrived.
Pooled attack success is 22.9% (2,113 of 9,720 cells). Inside those vulnerable cells, 64.9% show a dispatched attacker call, 23.0% confirm contact with the attacker endpoint, and 12.1% verify secret exfiltration. Hand review covers 1,259 transcripts.
The headline for buyers is structural. Nine core frameworks sit between roughly 23% and 26% ASR (chi-squared 3.30, p=0.91). Resistance that shows up is almost entirely model-tier. Claude Fable 5 lands at 0.4% ASR; Amazon Nova Pro at 49.7%. Claude Opus 4.8 is vulnerable in 8 of 530 cells (1.5%) while issuing 223 refusals that cite the poisoned description. Claude Sonnet 5 often names the injection as prompt injection and then still runs the exfiltration call.
Incidental framework properties help in spots: duplicate-tool-name rejection in Pydantic AI (16.6% ASR) and executor constraints in AG2 (4.6%). A regex scanner built from recommended description checks rejects 20 of 45 scenarios at a 7.2% false-positive rate on 125 benign descriptions. Metadata scanning alone is a partial control, not a product defence.
Compliance oracles left the framework layer unmeasured
MCPTox and related benches scored whether models would emit matching tool calls. Operators still had no matrix that held the model fixed and asked whether LangChain, CrewAI, Semantic Kernel, or the OpenAI API baseline changed outcomes once tools actually ran.
That gap mattered once MCP download volume crossed into the hundreds of millions per month and OWASP labelled tool poisoning MCP03. Shaikh and Montaruli answer the deployment question directly: on this suite, picking a popular framework is not a security control.
Open artefact, rejected disclosures, no intentional defence
Paper: arXiv:2611.03555, Dynatrace authors, AISec ’26 (The Hague, 15–19 November 2026). Tooling: mcpvenom on GitHub under dynatrace-research, implementing the 45 scenarios and canary oracle. Maturity: research measurement and audit, usable as a regression harness for teams that can pin framework and model versions; production-shaped only after you re-run on your own servers and tool allow-lists.
Code-level audit across all twelve frameworks finds no intentional tool-description defence. The authors filed five coordinated disclosures across four vendors; all five were rejected. That rejection trail is part of the result: accountability does not currently sit cleanly at protocol, framework, model, or host.
Reach for this matrix when framework shopping is sold as hardening
Use the paper when a vendor or internal platform team claims an agent framework choice reduces tool-poisoning risk. Ask for model-tier ASR on a dual-oracle suite, not only for a compliance-oracle demo on one client.
If you already standardised on a single model with strong refusal behaviour, the framework gap still matters for incident response: Sonnet-class narrate-then-comply behaviour will look like a successful detection in logs while the canary still fires. Pair model selection with host-side confirmation for destructive tools and with admission controls on which MCP servers may register.
Pooled ASR can hide model cliffs and disclosure dead ends
A 22.9% pool average understates Nova Pro and overstates Fable 5. Teams that quote the mean into a board pack will mis-rank risk. The suite uses stdio servers for determinism; HTTP transports carry the same poisoned fields, yet transport variation is out of scope. Regex scanners that catch 20 of 45 scenarios will still miss the rest, and a 7.2% false-positive rate is enough to train operators to click through.
Vendor rejection of the five disclosures means there may be no patch ticket to track even when the measurement reproduces. Treat “we disclosed” as unfinished business until a layer of the stack accepts ownership.
Run mcpvenom on the models you ship
The durable Monday move is to stop treating framework brand as a control plane. Re-run a dual-oracle subset on the models you actually ship, keep server admission narrow, and assume description fields remain attacker-controlled until a framework ships an intentional defence you can cite by file and test.