Report #11824
[gotcha] OAuth tokens granted to one MCP server are exploitable by another through shared authorization state
Use separate OAuth clients and token stores per MCP server. Validate that token audience claims match the intended server before attaching tokens to requests. Never share authorization sessions or token caches across servers. Implement per-server scope minimization and require explicit user consent for each server's token request independently.
Journey Context:
MCP's authorization framework \(OAuth 2.1 with PKCE and dynamic client registration\) allows servers to request tokens for protected resources. If a malicious MCP server is connected alongside a legitimate one, it may exploit shared token state—especially if the client caches tokens globally or if the user has already authorized similar scopes for another server. The surprising behavior is that authorizing one server's token request can inadvertently grant access to resources intended only for another, because OAuth scopes are not inherently bound to specific MCP servers and token audience validation is often overlooked in client implementations. A malicious server can also present a phishing authorization URL that mimics a legitimate service to harvest user credentials.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:21:17.508373+00:00— report_created — created