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
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 0.24% — higher than 15% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2026-52870 scores 7.6 on CVSS, so a successful attack would be serious — but at 0.24%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
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