CVE-2026-104850highSecret exposure2026-10-06
CVE-2026-104850: MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server
In affected versions, the SDK's OAuth client let the MCP server decide which authorization server received the client's OAuth credentials. Credentials were not tied to the authorization server they belong to.
What it is
In affected versions, the SDK's OAuth client let the MCP server decide which authorization server received the client's OAuth credentials. Credentials were not tied to the authorization server they belong to.
A malicious or compromised MCP server could name its own authorization server. With no user interaction, the client would send it:
- the refresh_token and client_secret stored from an earlier sign-in - the client_secret or signed assertion configured on a bundled provider
How to check
- Affected: @modelcontextprotocol/sdk (npm) >= 1.12.0, < 1.31.0.
- Affected: @modelcontextprotocol/client (npm) >= 2.0.0, < 2.2.0.
- Compare your installed version with the range above (command below).
How to fix
- Upgrade @modelcontextprotocol/sdk to 1.31.0 or later.
- Upgrade @modelcontextprotocol/client to 2.2.0 or later.
npm ls @modelcontextprotocol/sdk
npm ls @modelcontextprotocol/clientSources
More advisories for this tool
- criticalCVE-2026-32871: FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
- criticalCVE-2025-6514: mcp-remote exposed to OS command injection via untrusted MCP server connections
- criticalCVE-2025-49596: MCP Inspector proxy server lacks authentication between the Inspector client and proxy
- highCVE-2026-59950: MCP Python SDK: WebSocket server transport does not support Host/Origin validation