Report #39129
[gotcha] Agent leaks sensitive data from one MCP server to another untrusted server via cross-server tool chaining
Enforce data-flow isolation between MCP servers. Never allow an agent to pass output from a tool on server A as input to a tool on server B without explicit user confirmation. Partition servers into trust domains and run separate agent sessions per domain. Log all cross-server data flows and alert on them.
Journey Context:
MCP clients commonly connect to multiple servers simultaneously — a filesystem server with access to secrets, a web search server, an HTTP request server. The agent sees all tool outputs in one shared conversation context. If server A returns sensitive data \(e.g., a .env file\), a prompt injection payload embedded in that data can instruct the agent to call a tool on server B \(e.g., http\_post\) with the sensitive data as a parameter. There is no isolation boundary in the MCP protocol or in most client implementations. The counter-intuitive part: you correctly sandboxed each server, but the agent orchestrator is the confederation point that silently bridges trust domains. A low-trust utility server becomes an exfiltration channel for high-trust server data.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:09:14.033132+00:00— report_created — created