CVE-2026-52870·Python vulnerability
The MCP Python SDK, called mcp on PyPI, is a Python implementation of the Model Context Protocol (MCP). From 1.23.0 until 1.27.2, default handlers installed by server.experimental.enable_tasks() for tasks/list, tasks/get, tasks/result, and tasks/cancel operate only on task identifiers without recording the session that created each task, allowing any connected client to enumerate, read results from, consume messages for, or cancel other clients' tasks. This issue is fixed in version 1.27.2.
- Severity
- high
- Software
- Python
- Fixed in
- 1.27.2
- Published
- 2026-07-15
Affected versions
From: 1.23.0
Until: 1.27.2
Fixed in: 1.27.2
How to fix this CVE
Upgrade the MCP Python SDK to version 1.27.2 or later to remediate a critical cross-client task isolation vulnerability. Organizations using server.experimental.enable_tasks() must apply this update immediately, as it prevents unauthorized clients from accessing, modifying, or canceling other clients' task data. Verify the upgrade by checking the installed mcp package version after deployment.
sudo dnf update python3-mcpDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check the installed MCP SDK version by running: python3 -c "import mcp; print(mcp.__version__)" or pip3 show mcp | grep Version
- Step 2: Verify if server.experimental.enable_tasks() is active in your MCP server configuration by grepping your codebase: grep -r "enable_tasks" /path/to/mcp/config/
- Step 3: Review MCP server logs for task operation requests (tasks/list, tasks/get, tasks/result, tasks/cancel) from multiple distinct clients to identify cross-client access patterns: grep -E "tasks/(list|get|result|cancel)" /var/log/mcp-server.log
- Step 4: After upgrading to 1.27.2+, confirm the fix by re-running python3 -c "import mcp; print(mcp.__version__)" and verifying session isolation is enforced in new task operations
FAQ
What is CVE-2026-52870?
CVE-2026-52870 is a session isolation bypass in the MCP Python SDK's experimental task handlers. Connected clients could enumerate, read results from, and cancel other clients' tasks because task operations did not validate session ownership, allowing privilege escalation within multi-client MCP deployments.
Is CVE-2026-52870 being actively exploited?
No, CVE-2026-52870 is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are currently available. However, the vulnerability poses a significant risk in production environments with multiple concurrent MCP clients.
What versions of the MCP Python SDK are affected by CVE-2026-52870?
MCP SDK versions 1.23.0 through 1.27.1 are vulnerable. Version 1.27.2 and later contain the remediation and enforce proper session-based task isolation.
How do I check if my server is vulnerable to CVE-2026-52870?
Run 'pip3 show mcp | grep Version' to check the installed version. If the version is between 1.23.0 and 1.27.1 inclusive, and your configuration includes server.experimental.enable_tasks(), your deployment is vulnerable.
Does Defensia detect CVE-2026-52870?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the MCP Python SDK is installed on a monitored server, CVE-2026-52870 will appear in your dashboard with remediation steps.
Related Python CVEs
References
- https://github.com/modelcontextprotocol/python-sdk/commit/62137874ff26dd74d2fea80ff528a7fd9ca7a5e7
- https://github.com/modelcontextprotocol/python-sdk/pull/2720
- https://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.27.2
- https://github.com/modelcontextprotocol/python-sdk/security/advisories/GHSA-hvrp-rf83-w775
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-52870. Free for 1 server.
Get started free