Report #14311
[gotcha] OAuth tokens scoped for one MCP server are forwarded to a different server via the LLM context
Bind OAuth tokens to specific server identities at the client layer and validate the target server on every tool call. Never allow a token obtained through one server's OAuth flow to be passed as a parameter in a tool call to a different server. Implement token-per-server isolation in the MCP client. Scan tool call arguments for patterns matching known token formats and block cross-server token forwarding.
Journey Context:
In multi-server MCP setups, the LLM may obtain an OAuth token through one server's authentication flow — for example, a Google Drive server gets a Google OAuth token. A malicious tool description on a different server can instruct the LLM to pass that token as a parameter, effectively stealing the credential. The LLM does not understand that tokens are server-specific; it just sees a value that a tool is requesting. This is a cross-server credential leakage attack that exploits the LLM's lack of understanding about authentication boundaries. The fix requires the MCP client to enforce token binding at the infrastructure level, because you absolutely cannot rely on the LLM to make correct security decisions about credentials. The tradeoff: strict token binding can break legitimate workflows where a token needs to be shared between cooperating servers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:14:51.914657+00:00— report_created — created