NewApp Monitoring is liveSign up free
AgentbeamBeta
AI agent vulnerability · MCP TypeScript SDK

CVE-2026-111767: MCP TypeScript SDK: Experimental tasks were not tied to the session that created them

highCVSS 3.1 8.6GHSA-22jm-h49p-29qw

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@latest

Each 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/sdk 1.24.0 through 1.31.0 is vulnerable, and only if the server uses taskStore.

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 a taskStore and 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 entries