Report #10411
[gotcha] MCP stdio transport has zero authentication, enabling local process impersonation and pipe interception
Run each MCP server in an isolated environment \(container, VM, or sandbox\). Never bridge stdio MCP servers over a network without wrapping them in an authenticated transport. Use the Streamable HTTP transport with authentication headers for any non-local deployment. Implement process-level access controls on the host. Treat stdio as a trusted-channel transport only.
Journey Context:
The stdio transport — the default and most common MCP transport — works by spawning a subprocess and communicating over stdin/stdout. There is no authentication, no encryption, and no integrity verification. Any local process that can write to the server's stdin can impersonate the client; any process that can read stdout can intercept responses including sensitive data. In containerized or multi-tenant environments where process boundaries are weaker than expected, this is a real attack surface. The MCP spec explicitly states stdio is for local trusted contexts, but deployments routinely violate this assumption by proxying stdio over network sockets or running unverified server packages. The newer Streamable HTTP transport supports authentication, but stdio remains the default and the path of least resistance.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:41:16.576220+00:00— report_created — created