CVE-2026-111767: MCP TypeScript SDK: Experimental tasks were not tied to the session that created them
The MCP TypeScript SDK (`@modelcontextprotocol/sdk` 1.24.0 through 1.31.0) did not tie experimental tasks to the session that created them. Clients sharing one `InMemoryTaskStore` could list, read and cancel each other's tasks. Only HTTP servers that pass `taskStore` to `McpServer` or `Server` are affected. Upgrade to 1.32.0, or drop `taskStore`.
Published Oct 20, 2026 · Analysis Oct 21, 2026
What an attacker can do
The experimental tasks feature stores long-running tool calls in a taskStore. In affected versions the store looked tasks up by task id only and never compared the caller's session with the creator's. Any client that could reach the HTTP endpoint could call tasks/list to enumerate other sessions' tasks, tasks/get and tasks/result to read them, and tasks/cancel to stop them.
The attacker needs network access to the server and no credentials, which matches the CVSS vector (network, no privileges, high confidentiality impact). What leaks is whatever the tasks hold: tool arguments and results from other users or agents. Cancelling lets one client disrupt another's work. Servers that run a single client per process, or that use stdio, have no second session to attack.
Who is affected
Affected: @modelcontextprotocol/sdk >= 1.24.0 and < 1.32.0, and only when your HTTP server passes taskStore to McpServer or Server. The 2.x packages are not affected.
Check the installed version and search your code for the option:
npm ls @modelcontextprotocol/sdk
grep -ri taskstore --exclude-dir=node_modules .If the grep finds nothing, you are not affected.
@modelcontextprotocol/sdk
- Ecosystem
- npm
- Affected
- >= 1.24.0, < 1.32.0
- Fixed in
- 1.32.0
- Check
npm ls @modelcontextprotocol/sdk
How to fix it
Upgrade to @modelcontextprotocol/sdk 1.32.0 or later:
npm install @modelcontextprotocol/sdk@latestEach task is now bound to the session that created it, and a lookup from another session behaves as if the task does not exist. A client that starts a new session, including after an SSE reconnect, can no longer reach its earlier tasks. Make sure your sessionIdGenerator never returns the same value twice, because sessions with equal ids share tasks.
If you cannot upgrade, remove taskStore, or create one InMemoryTaskStore per session. Experimental tasks are deprecated, so stopping their use is the best course.
How to tell if you were hit
Look in server logs for tasks/list, tasks/get, tasks/result and tasks/cancel calls from sessions that did not create the task, especially a tasks/list that returns tasks you did not expect for that session. The advisory gives no log signature. After patching, a cross-session lookup returns Task not found (-32602).
If you ran a shared InMemoryTaskStore on an exposed endpoint, treat task contents as readable by any client that connected.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
In affected versions, the experimental tasks feature (taskStore) did not check which session created a task. Clients sharing one InMemoryTaskStore could list, read and cancel each other's tasks.
Experimental tasks are deprecated. The 2026-07-28 specification replaced them with a redesigned extension. The best course of action is to stop using them.
Am I affected?
Only if your HTTP server passes taskStore to McpServer or Server. If grep -ri taskstore --exclude-dir=node_modules . finds nothing, you are not affected.
Affected versions: @modelcontextprotocol/sdk 1.24.0 through 1.31.0. The 2.x packages are not affected.
Fix
Upgrade to @modelcontextprotocol/sdk 1.32.0 or later. Each task is now tied to the session that created it, so a client that starts a new session can no longer reach its earlier tasks.
If you cannot upgrade yet, remove taskStore, or create one InMemoryTaskStore per session.
Credited to cipher-creator.
Questions
- Does CVE-2026-111767 affect the 2.x MCP SDK packages?
No. The advisory says the 2.x packages are not affected. Only
@modelcontextprotocol/sdk1.24.0 through 1.31.0 is vulnerable, and only if the server usestaskStore.- How do I know whether my server uses the vulnerable feature?
Run
grep -ri taskstore --exclude-dir=node_modules .in your project. If nothing matches, your HTTP server does not pass ataskStoreand is not affected.- Will upgrading to 1.32.0 break reconnecting clients?
It can change behavior. A client that reconnects with a new session id, including every SSE reconnect, no longer sees tasks created in its earlier session.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
Coverage on the Beam blog
More MCP TypeScript SDK vulnerabilities
All MCP TypeScript SDK entriesCVE-2026-111768
MCP TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation
high7.5Oct 20, 2026CVE-2026-111769
MCP TypeScript client SDK: HTTP client transports and OAuth requests followed cross-origin redirects and re-sent custom headers and request bodies
medium6.5Oct 20, 2026CVE-2026-111771
MCP TypeScript SDK: Server bearer authentication accepted tokens issued for another service
medium6.8Oct 20, 2026CVE-2026-104850
MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server
high7.5Oct 6, 2026CVE-2026-25536
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
high7.1Feb 4, 2026CVE-2026-0621
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
high8.7Jan 5, 2026
