An opt-in experimental tasks feature in the MCP Python SDK used task identifiers without checking which session created them, allowing other clients to inspect or cancel tasks.
CVE-2026-52870 applies only to applications that enabled the low-level experimental tasks feature. It does not describe every MCP Python SDK deployment.
First seen
Jun 5, 2026
Case kind
vulnerability
AI role
AGAINST AI
Claims
3
Reconstruction
The defect was ordinary authorization inside an agent protocol feature. Experimental task handlers accepted a task ID as enough authority for list, get, result and cancel operations. In a multi-client server, the SDK did not record and enforce which session owned the task.
That matters because asynchronous agent work often contains long-lived results, prompts and elicitation state. A task identifier can be guessed, discovered or leaked; it should not become a bearer credential unless the protocol explicitly designs it that way.
The advisory is tightly scoped. Applications that never enabled the experimental tasks feature were not affected. Version 1.27.2 is listed as the fix.
Mechanism & boundary
01
Client creates a task
Experimental tasks create a long-lived task identifier.
Boundary: client / task store
02
Server stores the task without creator-session ownership
Affected handlers can later resolve the task by identifier alone.
Boundary: task identity / authorization
03
Another client uses task operations
A different connected client can list, read results from or cancel the task.
Boundary: session A / session B
Timeline
Jun 5, 2026
GitHub advisory published
report
The MCP Python SDK advisory documents the experimental-task authorization flaw.
Jul 16, 2026
Advisory metadata updated
followup
The reviewed advisory record was updated in July.
Claims & evidence
reported findingsupported
The default experimental task handlers did not bind a task to the session that created it, so another connected client could observe, read results from or cancel that task.
Agent protocols need object-level authorization for asynchronous work. Session ownership should be explicit at creation and enforced at every subsequent operation.
Controls & mitigations
Upgrade affected deployments to mcp 1.27.2 or later.
Bind every task to an authenticated session or principal at creation.
Authorize list, get, result, cancel and related elicitation operations against that ownership.
What remains unknown
The public advisory does not establish exploitation in the wild.
DiggingBeagle. “MCP Python SDK tasks crossed client-session boundaries.” First seen Jun 5, 2026. https://diggingbeagle.com/cases/mcp-python-sdk-tasks-crossed-client-session-boundaries/
DiggingBeagle is a non profit research project documenting AI security incidents, agent failures, vulnerabilities and AI-assisted operations. A case keeps its claims beside the sources that support, contest or limit them. Later updates stay visible, so a reader can see when the account changed.
We publish case reconstructions, dated reporting and analysis across records. Each has a different evidentiary role. About the project and our methodology explain how the work is reviewed.