CVE-2026-111770
Model Context Protocol TypeScript SDK: Shared transport or server instances delivered one HTTP client's messages to another
The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 2.0.0 until 2.3.0 in @modelcontextprotocol/server, applications that shared one stateless HTTP transport or one McpServer or Server instance among multiple clients could deliver responses and notifications to the wrong client. The affected surface is an MCP server reached over HTTP by multiple clients. The trigger is reuse of one stateless transport or server instance. Messages were associated with a connection using only the JSON-RPC request identifier. SDK clients start request identifiers at zero, so collisions occur in normal operation. Cross-client delivery exposes one client's responses and notifications to another client. The issue requires an HTTP endpoint reachable by more than one client and an application that constructs the server or transport once at startup instead of once per request or session. stdio servers and factory-created per-call servers are not affected. Upgrading causes reused instances to fail and therefore requires an application code change. This issue is fixed in @modelcontextprotocol/server 2.3.0.
Fixes and workarounds
Fix
@modelcontextprotocol/server (npm): OSV reports a fixed version 2.3.0. Check the advisory for supported release branches.
Source: OSV GHSA-jm63-cq47-j5jpAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| typescript-sdk modelcontextprotocol |
< 1.32.0 (affected) | CNA: GitHub_M |
| server @modelcontextprotocol |
>= 2.0.0, < 2.3.0 (affected) | CNA: GitHub_M |
@modelcontextprotocol/server@modelcontextprotocol/server
npm |
≥ 2.0.0; < 2.3.0 (affected, semver); OSV events: introduced 2.0.0; fixed 2.3.0Source events (semver)
Other versions: unaffected |
OSV GHSA-jm63-cq47-j5jp |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 3.1 / 7.7 high |
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:H | CNA: GitHub_M |
Exploit evidence
No exploit evidence in collected sources. This is not proof of no exploitation.
References
- https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-jm63-cq47-j5jpCNA: GitHub_M · x_refsource_CONFIRM
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2918CNA: GitHub_M · x_refsource_MISC
- https://github.com/modelcontextprotocol/typescript-sdk/commit/84804c22e45a662675a198f853b7f00063838a8dCNA: GitHub_M · x_refsource_MISC
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/1.32.0CNA: GitHub_M · x_refsource_MISC
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/@modelcontextprotocol/[email protected]CNA: GitHub_M · x_refsource_MISC
- https://github.com/advisories/GHSA-jm63-cq47-j5jpOSV / GitHub Security Advisories · advisory
- https://osv.dev/vulnerability/GHSA-jm63-cq47-j5jpOSV / GitHub Security Advisories · osv
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.