Read the docs
TI-2026-68483 Aliases CVE-2026-104850

MCP TypeScript SDK OAuth client leaks credentials to chosen server

Priority LOW 39CWE-345Published · Updated

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

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00282 20th percentileScored 2026-11-07
Fix Partial typescript-sdk (modelcontextprotocol): 1.31.0, 2.2.0@modelcontextprotocol/sdk (npm): 1.31.0+1 more productRed Hat: 4 without a fix

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

VendorProductAffected versionsFixed inStatusSource
MLflowtypescript-sdk1.12.0 to before 1.31.0; 2.0.0 to before 2.2.01.31.0, 2.2.0Patch availableCNA
—@modelcontextprotocol/sdk (npm)1.12.0 to before 1.31.01.31.0Patch availableGHSA-6qxp-vccf-f47h
—@modelcontextprotocol/client (npm)2.0.0 to before 2.2.02.2.0Patch availableGHSA-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 →

ProductStatusPlan or fix
Migration Toolkit for Applications 8AffectedNo fix yet
Red Hat Ansible Automation Platform 2AffectedNo fix yet
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet
Red Hat OpenShift Dev SpacesAffectedNo fix yet
Not affected: 3 products
  • Red Hat Enterprise Linux 10
  • Red Hat Enterprise Linux 9
  • Red Hat Hardened Images

Timeline

  1. 2026-10-06 Threatist record created from CVE-2026-104850
  2. 2026-10-06 CISA SSVC decision points changed
  3. 2026-10-06 Priority changed: MEDIUM → LOW
  4. 2026-10-07 Affected versions changed · Red Hat
  5. 2026-10-07 CVSS score added · Red Hat
  6. 2026-10-09 Affected versions changed · Red Hat
  7. 2026-10-21 Affected versions changed · Red Hat
  8. 2026-10-24 Affected versions changed · Red Hat

References

  • 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
See all 175 →

Sources