Report #40812
[gotcha] Stdio transport has zero authentication — any local process that replaces the MCP server binary gets full agent access
Verify MCP server binary integrity before launch \(checksums, code signing\). Run each MCP server in an isolated sandbox \(container, sandbox-exec, AppArmor profile\). Never connect stdio MCP servers on shared-hosting or CI environments where process boundaries are weak. For production, prefer the Streamable HTTP transport with mutual TLS.
Journey Context:
The stdio transport is the MCP default and is implicitly trusted because it runs locally. But 'local' is not a security boundary. A compromised npm package in the server's dependency tree, a PATH manipulation, or a malicious shell profile can substitute the server binary. The replacement process inherits the full user context and speaks MCP over stdin/stdout with no handshake, no authentication, and no integrity check. The agent cannot distinguish the real server from the impostor. This makes every MCP server's supply chain a direct privilege escalation path to the agent's full capability set. The counter-intuitive part: adding an MCP server is equivalent to giving a third-party package a shell on your machine with your credentials.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T22:58:19.480676+00:00— report_created — created