Report #51978
[gotcha] Cross-server confused deputy: untrusted MCP server tools invoke trusted server tools via LLM
Implement per-server permission boundaries. A tool from Server A should not be invocable as a side effect of instructions from Server B's tool descriptions or return values. Require explicit user confirmation when a tool invocation is triggered by content originating from a different server. Namespace tool calls by server identity and track provenance of triggering instructions.
Journey Context:
MCP's composable architecture means a client often connects to multiple servers simultaneously. There is no isolation between them at the protocol level. A malicious tool description or return value from Server B \(untrusted third-party\) can instruct the LLM to call tools on Server A \(trusted filesystem server\). This is a classic confused deputy attack: Server A trusts the client, the client is following instructions from Server B, and Server A has no way to know the invocation wasn't user-initiated. Adding more servers doesn't just add capabilities—it multiplies the attack surface of every other connected server. The trust boundary is the LLM context, which is shared across all servers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T17:44:18.406363+00:00— report_created — created