MCP TypeScript client SDK followed cross-origin redirects and re-sent custom headers and request bodies
- Product
- MCP TypeScript client SDK
- CVE
- CVE-2026-111769
- Affected
- @modelcontextprotocol/sdk all versions through 1.31.0; @modelcontextprotocol/client 2.0.0 through 2.2.0
- Fixed in
- 1.32.0 for @modelcontextprotocol/sdk; 2.3.0 for @modelcontextprotocol/client
Last verified against sources: October 26, 2026
Am I affected?
MCP TypeScript client SDK: affected @modelcontextprotocol/sdk all versions through 1.31.0; @modelcontextprotocol/client 2.0.0 through 2.2.0. Fixed in 1.32.0 for @modelcontextprotocol/sdk; 2.3.0 for @modelcontextprotocol/client.
- Check your version: run
npm ls @modelcontextprotocol/sdk. Versions < 1.32.0 of @modelcontextprotocol/sdk are affected. [1] - Check your version: run
npm ls @modelcontextprotocol/client. Versions >= 2.0.0, < 2.3.0 of @modelcontextprotocol/client are affected. [1]
What to do now
- Upgrade to the fixed version: run
npm install @modelcontextprotocol/sdk@1.32.0(first patched version 1.32.0). [1] - Upgrade to the fixed version: run
npm install @modelcontextprotocol/client@2.3.0(first patched version 2.3.0). [1] - Upgrade to @modelcontextprotocol/sdk 1.32.0 or later, or @modelcontextprotocol/client 2.3.0 or later. [1]
- If a redirect may have reached a host you do not control, rotate the API keys and client_secret your application held and revoke its tokens. [1]
- If you cannot upgrade yet, pass a fetch that refuses redirects, for example (url, init) => fetch(url, { ...init, redirect: 'error' }). [1]
- If your MCP server or authorization server redirects to another origin on purpose, configure the final URL instead. [1]
General practice, not from the source: if the affected software could read tokens or credentials, rotate them after upgrading; pin versions and review changes before updating tools your agents run.
What happened
- The SDK's HTTP client transports and OAuth requests followed redirects to any origin. [1]
- If an MCP server or authorization server redirected a request to another origin, that origin received custom request headers and the mcp-session-id header. [1]
- On a 307 or 308 redirect, that origin also received the request body, including OAuth token requests with their refresh_token and client_secret. [1]
- Applications using StreamableHTTPClientTransport, SSEClientTransport, or the SDK's OAuth client functions such as auth() are affected; stdio clients are not. [1]
Impact
- On current runtimes, fetch already drops the Authorization header across origins. [1]
What was done
Sources
- GHSA-6prh-2h8m-c8cw — GitHub Advisory Database
Every statement above was checked against these sources before publishing. Spotted an error? Tell us and we will correct it with a dated note.
Share advisory brief with your team
Copy a plain-text summary for Slack, GitHub issues, or team security channels.
[CVE-2026-111769] MCP TypeScript client SDK followed cross-origin redirects and re-sent custom headers and request bodies
Product: MCP TypeScript client SDK | Affected: @modelcontextprotocol/sdk all versions through 1.31.0; @modelcontextprotocol/client 2.0.0 through 2.2.0 | Fixed in: 1.32.0 for @modelcontextprotocol/sdk; 2.3.0 for @modelcontextprotocol/client
Summary: The SDK's HTTP client transports and OAuth requests followed redirects to any origin.
Source & remediation on AgentArmorHQ: https://agentarmorhq.com/incidents/2026/10/cve-2026-111769-mcp-typescript-client-sdkCorrections
Report an error or request a correction. We review requests within 5 business days and add a dated correction note.
Discussions for CVE-2026-111769
Ask questions or share configuration tips. Governed by our Community Rules & Terms.
No posts match this filter yet.
Be the first to ask a question or share a working tip.