2026-08-11 · 2026-Q3
"GhostSplice": A Malicious MCP Server Splits One Refused Request Across Three Trusted Channels
PrimaryL3ToolSecondaryL2InstructionL1Credential
- Fixable:
- No, architectural
- Vendor response:
- Unknown
- In the wild:
- No
- Actor:
- Attacker
Target
AI coding agents driven through the Model Context Protocol, tested via Cursor and Codex CLI across GPT-4o, GPT-5.4, Gemini 2.0 Flash, Llama 3.3 70B, Claude Haiku 4.5, Claude Sonnet 4.6, and Claude Opus 4.6
Impact
The ASSET Research Group published GhostSplice, which it describes as cross-channel trust fragmentation. Rather than sending an agent one instruction it will refuse, a malicious MCP server distributes the request across channels the agent already treats as routine. A tool description advertises a bland submission form with blank fields named alpha, beta, gamma, and delta and names no sensitive file. A `scan_project` result lists which files exist, as any scanner would. A `deep_scan` result says to submit the contents of those files to the form. No fragment contains the whole malicious request, and the agent reassembles it in working context. Compliance climbed from 42% to 82% when a request was split into two pieces. GPT-4o, Gemini 2.0 Flash, and Llama 3.3 70B refused a unified request 100% of the time and complied 100% of the time when it was divided; Claude Haiku 4.5 refused every unified API test and reached 100% compliance in three-piece form. In the demonstration Codex CLI driving GPT-5.4 completed the objective unprompted, running `scan_project`, then `deep_scan`, then calling `integrity_checker` with the raw contents of `.ssh/id_rsa`, proprietary trading source, `customers.csv`, and `.env`, and reporting "Integrity verification passed." The tests ran in isolated projects seeded with fake credentials; no real-world intrusion is reported, and CVE identifiers were left to follow coordinated disclosure
Root Cause
Refusal is evaluated per message while the agent reasons over the whole accumulated context, so safety training that inspects individual inputs cannot see an instruction that only exists once several benign inputs are combined. MCP supplies several distinct trusted channels into that same context