CVE-2026-52869 MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principal
Attackers can inject JSON-RPC messages into existing sessions by guessing session IDs, bypassing authentication checks in the MCP Python SDK.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-52869?
CVE-2026-52869 is a high-severity missing authorization vulnerability in modelcontextprotocol python-sdk, published on 15 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
The MCP Python SDK, called mcp on PyPI, is a Python implementation of the Model Context Protocol (MCP). Prior to 1.27.2, the SSE and stateful Streamable HTTP transports mcp.server.sse.SseServerTransport and mcp.server.streamable_http_manager.StreamableHTTPSessionManager route requests to existing sessions using only the session_id query parameter or Mcp-Session-Id header without verifying the authenticated principal that created the session, allowing a different bearer-token-authenticated client with a known session ID to inject JSON-RPC messages into that session. This issue is fixed in version 1.27.2.
Weakness: CWE-639
Which versions are affected by CVE-2026-52869?
3 open source packages ship an affected version, including mcp. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
mcp PyPI | All versions | 1.27.2 |
mcp PyPI | All versions | 1.27.2 |
mcp PyPI | All versions | 1.27.2 |
Products include Lfprojects Mcp Python Sdk.
How do I fix CVE-2026-52869?
Upgrade mcp to 1.27.2 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-52869 being exploited?
There is no known exploitation of CVE-2026-52869 in the wild and no public exploit code.
Other vulnerabilities in modelcontextprotocol python-sdk
- CVE-2026-52870 MCP Python SDK: Experimental task handlers allow any client to access and cancel other clients' tasks
- CVE-2026-59950 MCP Python SDK: WebSocket server transport does not support Host/Origin validation
- CVE-2025-66416 DNS Rebinding Protection Disabled by Default in Model Context Protocol Python SDK for Servers Running on Localhost
Sources
Also known as ECHO-5da5-33db-f402, GHSA-jpw9-pfvf-9f58, MINI-24xq-v9j2-hcfp, MINI-3225-g9hp-39wm, MINI-34ph-9368-jwf6, MINI-53f5-8x3p-x6w4 and 14 more.