MCP TypeScript SDK OAuth client leaks credentials to chosen server
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass, Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Partial Red Hat: 4 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-345 and CWE-522.
Summary
MCP TypeScript SDK from 1.12.0 before 1.31.0 and from 2.0.0 before 2.2.0 is affected. The OAuth client lets the connected MCP server choose the authorization server that receives credentials (CWE-345). A malicious or compromised MCP server can name its own authorization server, and the client then sends stored credentials to it without user interaction. Applications that connect over HTTP with an authProvider to servers they do not fully trust are at risk.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Starting in version 1.12.0 and prior to versions 1.31.0 and 2.2.0, the SDK's OAuth client support let the MCP server a client connected to decide which authorization server received the client's OAuth credentials. Stored and pre-provisioned credentials were not bound to the authorization server they belong to. A malicious or compromised MCP server could name its own authorization server in its protected resource metadata. Without any user interaction, the client would send that server the `refresh_token` and `client_secret` stored from an earlier sign-in (1.x), or the configured `client_secret` or signed assertion of a bundled non-interactive provider (1.x and 2.x). Only those applications that use the SDK as an MCP client over HTTP with an `authProvider`: your own `OAuthClientProvider`, or the bundled `ClientCredentialsProvider`, `PrivateKeyJwtProvider`, `StaticPrivateKeyJwtProvider` or (2.x) `CrossAppAccessProvider` and that may connect to an MCP server the owners does not fully trust while holding credentials for a legitimate authorization server are affected. `@modelcontextprotocol/sdk` 1.31.0 (1.x) and `@modelcontextprotocol/client` 2.2.0 (2.x) patch the issue. A workaround for those who cannot upgrade is available. 2.0.0 and 2.1.0 already accept `expectedIssuer`. On 1.x, the only workaround is to connect OAuth-enabled clients only to MCP servers you trust.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| MLflow | typescript-sdk | 1.12.0 to before 1.31.0; 2.0.0 to before 2.2.0 | 1.31.0, 2.2.0 | Patch available | CNA |
| — | @modelcontextprotocol/sdk (npm) | 1.12.0 to before 1.31.0 | 1.31.0 | Patch available | GHSA-6qxp-vccf-f47h |
| — | @modelcontextprotocol/client (npm) | 2.0.0 to before 2.2.0 | 2.2.0 | Patch available | GHSA-6qxp-vccf-f47h |
- typescript-sdk VendorMLflow Affected 1.12.0 to before 1.31.0; 2.0.0 to before 2.2.0 Fixed in 1.31.0, 2.2.0 Patch available CNA
- @modelcontextprotocol/sdk (npm) Vendor— Affected 1.12.0 to before 1.31.0 Fixed in 1.31.0 Patch available GHSA-6qxp-vccf-f47h
- @modelcontextprotocol/client (npm) Vendor— Affected 2.0.0 to before 2.2.0 Fixed in 2.2.0 Patch available GHSA-6qxp-vccf-f47h
Remediation
Upgrade @modelcontextprotocol/sdk to 1.31.0 for 1.x and @modelcontextprotocol/client to 2.2.0 for 2.x. On 2.0.0 and 2.1.0, use expectedIssuer, and on 1.x, connect OAuth-enabled clients only to MCP servers you trust. Red Hat has no fix plan for Migration Toolkit for Applications 8, Red Hat Ansible Automation Platform 2, Red Hat OpenShift AI (RHOAI) and Red Hat OpenShift Dev Spaces.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA typescript-sdk (modelcontextprotocol) Fixed in 1.31.0, 2.2.0
- Fix · GHSA-6qxp-vccf-f47h @modelcontextprotocol/sdk (npm) Fixed in 1.31.0 Advisory →
- Fix · GHSA-6qxp-vccf-f47h @modelcontextprotocol/client (npm) Fixed in 2.2.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Migration Toolkit for Applications 8 | Affected | No fix yet |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet |
| Red Hat OpenShift Dev Spaces | Affected | No fix yet |
Not affected: 3 products
- Red Hat Enterprise Linux 10
- Red Hat Enterprise Linux 9
- Red Hat Hardened Images
Timeline
- 2026-10-06 Threatist record created from CVE-2026-104850
- 2026-10-06 CISA SSVC decision points changed
- 2026-10-06 Priority changed: MEDIUM → LOW
- 2026-10-07 Affected versions changed · Red Hat
- 2026-10-07 CVSS score added · Red Hat
- 2026-10-09 Affected versions changed · Red Hat
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-24 Affected versions changed · Red Hat
References
Other 5
- https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-6qxp-vccf-f47h
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2887
- https://github.com/modelcontextprotocol/typescript-sdk/commit/edd12e282620ebf770d67316f19cf91d4112a1bd
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/v2.2.0
- https://github.com/modelcontextprotocol/typescript-sdk
More MLflow vulnerabilities
- TI-2026-46366 Server-side request forgery in mlflow KEVCVSS 3.1CRITICAL 9.3
- TI-2023-03518 Absolute Path Traversal in mlflow/mlflow CVSS 3.1CRITICAL 10.0
- TI-2023-01113 Path Traversal: '\..\filename' in mlflow/mlflow CVSS 3.1CRITICAL 9.8
- TI-2025-31759 Redis Lua Use-After-Free may lead to remote code execution CVSS 3.1CRITICAL 10.0
- TI-2026-81527 Code execution via scorer deserialization in MLflow servers CVSS 3.1CRITICAL 9.8
- TI-2025-14028 Command Injection in mlflow/mlflow CVSS 3.1CRITICAL 10.0
Sources
- CVE-2026-104850 · CVE Program
- CVE-2026-104850 · NVD
- FIRST EPSS
- CVE-2026-104850 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences