Report #58746
[gotcha] Sensitive data from one MCP server's tool is silently forwarded to another server's tool by the LLM
Implement data-flow isolation between MCP servers. Tag tool outputs with their server of origin and add system instructions prohibiting the LLM from passing data from one server's output into another server's tool call. Where possible, run separate agent contexts per server with no shared history. Log all cross-server data flows for audit.
Journey Context:
When multiple MCP servers are connected to the same agent, the LLM sees all tool outputs in a shared conversation history. A benign 'file reader' tool from Server A returns sensitive data, and a benign 'web search' tool from Server B accepts arbitrary strings. The LLM, trying to be helpful, may chain these tools—reading a secret with Server A and pasting it into a Server B query parameter that gets sent to an attacker-controlled endpoint. Neither server is individually malicious; the vulnerability emerges from their composition. This is a confused-deputy attack where the LLM is the deputy. MCP provides no isolation boundary between servers, and most client implementations share a single context window across all connected servers. The fix requires client-side data-flow controls that the protocol itself does not provide.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T05:05:31.551566+00:00— report_created — created