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.
Published: 2026-07-15
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The MCP Python SDK, in versions earlier than 1.27.2, contains a flaw in its SSE and stateful Streamable HTTP transports that permits the server to route requests to an existing session based solely on the session_id query parameter or the Mcp-Session-Id header, without verifying the authenticated principal that created the session. Because of this mis‑authorization, an attacker who knows a valid session ID can inject arbitrary JSON‑RPC messages into that session, potentially enabling execution of any server‑exposed commands and leading to data tampering or unintended actions.

Affected Systems

Affected systems are the Model Context Protocol Python SDK (PyPI package mcp) versions earlier than 1.27.2. The issue is present in the SSE and stateful Streamable HTTP transports before the 1.27.2 release. Users of any older SDK version that relies on these transports are at risk until they upgrade.

Risk and Exploitability

The vulnerability carries a CVSS score of 7.1, indicating moderate to high severity, and an EPSS <1%, suggesting that the likelihood of exploitation is currently low but not negligible. The vulnerability is not listed in CISA’s KEV catalog. Exploitation would require an attacker to obtain the session identifier, which may be done through traffic sniffing or session ID reuse. Once an ID is known, a bearer‑token‑authenticated client can send malicious JSON‑RPC traffic to the server, and because the system fails to verify the authenticated principal, the injected commands are accepted without restriction.

Generated by OpenCVE AI on July 31, 2026 at 02:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Model Context Protocol Python SDK to version 1.27.2 or later, which contains the fix for the session validation flaw.
  • Immediately rotate or invalidate known session IDs that may have been exposed, and enforce secure session handling in downstream applications.
  • Implement application‑level checks to confirm that the authenticated principal matches the session owner before processing any JSON‑RPC requests, mitigating the improper authorization weakness.

Generated by OpenCVE AI on July 31, 2026 at 02:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jpw9-pfvf-9f58 MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principal
History

Thu, 16 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 16 Jul 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared Modelcontextprotocol
Modelcontextprotocol python-sdk
Vendors & Products Modelcontextprotocol
Modelcontextprotocol python-sdk

Wed, 15 Jul 2026 20:15:00 +0000

Type Values Removed Values Added
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.
Title MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principal
Weaknesses CWE-639
References
Metrics cvssV3_1

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


Subscriptions

Modelcontextprotocol Python-sdk
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-16T13:00:37.854Z

Reserved: 2026-06-08T21:44:27.363Z

Link: CVE-2026-52869

cve-icon Vulnrichment

Updated: 2026-07-16T13:00:32.557Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T03:00:06Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key