Description
The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. Prior to 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/client, the HTTP client transports and OAuth client requests followed redirects to a different origin while retaining custom request headers and, for HTTP 307 or 308 responses, request bodies. The affected surfaces are StreamableHTTPClientTransport, SSEClientTransport, and OAuth client functions such as auth(). The trigger is an HTTP redirect to another origin. Custom headers and mcp-session-id can be re-sent to the redirected origin. HTTP 307 and 308 redirects can also re-send the request body. OAuth request bodies can contain refresh_token and client_secret values. Current runtimes already strip the Authorization header across origins. stdio clients do not use the affected HTTP path. A malicious or compromised MCP or authorization server could therefore receive API keys, session identifiers, OAuth refresh tokens, or OAuth client secrets. Restoring unrestricted redirect following after upgrading restores the exposure. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/client 2.3.0.
Published: 2026-11-05
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Data Leakage via Cross-Origin Redirects
Action: Apply Patch
AI Analysis

Impact

The vulnerability in the Model Context Protocol TypeScript SDK allows the HTTP client transports and OAuth client functions to follow redirects to a different origin while retaining custom request headers and, for HTTP status 307 or 308, the request body. When a redirect occurs, sensitive headers such as mcp-session-id and Authorization‑like information, as well as OAuth refresh_token and client_secret contained in the request body, are inadvertently re‑sent to the new origin. This results in unintended disclosure of confidential session identifiers, API keys, and OAuth credentials to potentially malicious or compromised servers.

Affected Systems

The affected products are @modelcontextprotocol/sdk (versions prior to 1.32.0) and @modelcontextprotocol/client (versions 2.0.0 through 2.3.0). Both StreamableHTTPClientTransport, SSEClientTransport, and OAuth client functions such as auth() are impacted. Upgrading to @modelcontextprotocol/sdk 1.32.0 or @modelcontextprotocol/client 2.3.0 resolves the issue.

Risk and Exploitability

With a CVSS score of 6.5, the vulnerability represents moderate severity. The exploitability requires an attacker to be able to influence the redirect path, typically by controlling the MCP or authorization server. Because EPSS data is not available and the vulnerability is not listed in the CISA KEV catalog, current risk is primarily tied to the likelihood of an attacker successfully issuing a cross‑origin redirect. Once the redirect is triggered, credentials and session data can be captured, compromising account security and potentially allowing further lateral movement.

Generated by OpenCVE AI on November 5, 2026 at 22:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to @modelcontextprotocol/sdk version 1.32.0 or newer or to @modelcontextprotocol/client version 2.3.0 or newer to eliminate redirect following across origins.
  • Review application configurations to disable or limit automatic redirect handling in the HTTP client to prevent unintended exposure of custom headers and request bodies.
  • Verify that any third‑party services or environments no longer issue redirects to external origins, and monitor logs for unexpected redirect responses that may indicate malicious activity.

Generated by OpenCVE AI on November 5, 2026 at 22:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6prh-2h8m-c8cw MCP TypeScript client SDK: HTTP client transports and OAuth requests followed cross-origin redirects and re-sent custom headers and request bodies
History

Thu, 05 Nov 2026 21:30:00 +0000

Type Values Removed Values Added
Description The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. Prior to 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/client, the HTTP client transports and OAuth client requests followed redirects to a different origin while retaining custom request headers and, for HTTP 307 or 308 responses, request bodies. The affected surfaces are StreamableHTTPClientTransport, SSEClientTransport, and OAuth client functions such as auth(). The trigger is an HTTP redirect to another origin. Custom headers and mcp-session-id can be re-sent to the redirected origin. HTTP 307 and 308 redirects can also re-send the request body. OAuth request bodies can contain refresh_token and client_secret values. Current runtimes already strip the Authorization header across origins. stdio clients do not use the affected HTTP path. A malicious or compromised MCP or authorization server could therefore receive API keys, session identifiers, OAuth refresh tokens, or OAuth client secrets. Restoring unrestricted redirect following after upgrading restores the exposure. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/client 2.3.0.
Title Model Context Protocol TypeScript SDK: HTTP client transports and OAuth requests followed cross-origin redirects and re-sent custom headers and request bodies
Weaknesses CWE-200
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-05T21:19:36.708Z

Reserved: 2026-10-16T17:52:09.082Z

Link: CVE-2026-111769

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-05T22:17:45.637

Modified: 2026-11-05T22:17:45.637

Link: CVE-2026-111769

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-05T22:30:17Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor