Skip to main content

MCP TypeScript SDK EUVDEUVD-2026-105256

| CVE-2026-111767 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-20 GitHub_M GHSA-22jm-h49p-29qw
8.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect as MCP client in new session
  2. Exploit
    Call tasks/list on shared store
  3. Execution
    Read other sessions' task results
  4. Impact
    Cancel or disrupt victim tasks

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitable only when an HTTP-based MCP server explicitly passes a single shared InMemoryTaskStore (or a custom TaskStore that ignores sessionId) to McpServer or Server and serves multiple client sessions from that one store, using the experimental, deprecated tasks feature. Limiting factors: the feature is not enabled by default (operators can confirm non-exposure via 'grep -ri taskstore'); it is deprecated and removed in the 2026-07-28 spec; stdio servers, stateless/no-session HTTP servers, and deployments using one InMemoryTaskStore per session are not vulnerable to cross-session leakage; 2.x packages are unaffected. Exposure is confined to versions 1.24.0 through 1.31.0.

Impact

This is a CWE-639 authorization-bypass (IDOR-style cross-session access) flaw with a vendor/NVD CVSS of 8.6 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L), implying a remote, low-complexity, unauthenticated issue with high confidentiality and low integrity/availability impact. However, several signals pull the real-world priority well below what the 8.6 base score suggests. No EPSS probability, no CISA KEV listing, and no public exploit code are present in the input - exploitation status is therefore 'no public exploit identified at time of analysis.' Most importantly, the affected code path is the experimental, now-deprecated tasks feature (taskStore), which is OFF by default: a server is only exposed if it explicitly passes a single shared InMemoryTaskStore to McpServer/Server across multiple sessions. The GHSA advisory itself notes the feature is deprecated and replaced in the 2026-07-28 spec, and that a simple grep for 'taskstore' tells operators whether they are affected at all. The PR:N in the vector is defensible because any connecting MCP client can abuse an unscoped store, but AV:N/AC:L understate the deployment precondition (a specific non-default, experimental configuration). Net assessment: a genuine access-control bug that should be patched, but in practice this is a high-CVSS / low-real-world-exposure issue driven by a niche opt-in feature rather than a broadly exploitable, actively-targeted vulnerability.

Exploit ScenarioDerived

An MCP HTTP server is configured with a single shared InMemoryTaskStore passed to McpServer/Server and serves multiple client sessions. A malicious or unauthorized client connects in its own session and calls tasks/list, tasks/get and tasks/result to read tasks (and their results) created by other clients, and tasks/cancel to abort them. No public proof-of-concept exists; exploitation leverages the documented low-complexity, network-reachable API surface with no authentication qualifier beyond being a connected client.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

Cross-session task access in the MCP TypeScript SDK (@modelcontextprotocol/sdk 1.24.0 through 1.31.0) allows any client sharing a single InMemoryTaskStore to list, read, and cancel other clients' experimental task records and results, an IDOR-style authorization bypass rated 8.6 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L) with high confidentiality impact and low integrity/availability impact. The flaw is only reachable where an HTTP MCP server explicitly passes a shared taskStore to McpServer or Server and serves multiple sessions from it using the deprecated experimental tasks feature; stdio servers, stateless HTTP servers, and one-store-per-session deployments are not exposed, and 2.x packages are unaffected. There is no public exploit identified at time of analysis and no confirmed active exploitation; the vendor patched the SDK in 1.32.0 by binding each task to the session that created it.

RemediationAI

Vendor-released patch: @modelcontextprotocol/sdk 1.32.0 - upgrade to 1.32.0 or later, which stores each task's sessionId and returns 'not found' for cross-session get/result/cancel while excluding foreign tasks from list (advisory: https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-22jm-h49p-29qw, fix PR https://github.com/modelcontextprotocol/typescript-sdk/pull/2925, commit 727075b5bbeb77fbea22041b36b72a73042160fa). First confirm exposure with grep -ri taskstore --exclude-dir=node_modules; if it returns nothing, no action beyond routine upgrade is needed. If upgrading is blocked, either remove the taskStore option entirely (this disables the experimental tasks capability - clients relying on tasks/get and tasks/result will fail) or instantiate a separate InMemoryTaskStore per session (fixes leakage but loses intentional cross-session task sharing and still requires distinct session identifiers). Stopping use of the deprecated experimental tasks is the vendor's recommended path since the 2026-07-28 specification replaces it; note that with session-scoped stores a client returning under a new session id, including every reconnect over legacy SSEServerTransport, can no longer reach its earlier tasks, and any custom TaskStore must itself enforce sessionId the way the patched InMemoryTaskStore does - otherwise multi-session sharing persists.

Affected VersionsENISA

typescript-sdk 1.24.0, < 1.32.0

Affected Packages

npm @modelcontextprotocol/sdk fix: 1.32.0
euvd typescript_sdk fix: 1.32.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The MCP TypeScript SDK implements the Model Context Protocol's experimental tasks capability through a TaskStore interface, with InMemoryTaskStore (src/experimental/tasks/stores/in-memory.ts) as the shipped reference implementation; the built-in tasks/get, tasks/result, tasks/list, and tasks/cancel handlers pass the request's session to the store. Affected builds accepted a sessionId argument in createTask, getTask, getTaskResult, storeTaskResult, updateTaskStatus and listTasks but discarded it (parameter named _sessionId) and keyed all state purely by task id, so any client of the same store could enumerate and manipulate every task - a CWE-639 authorization bypass via user-controlled key. The fix (PR 2925, commit 727075b5) persists sessionId on the StoredTask record and adds a private lookup() helper that returns the task only when the stored sessionId matches the caller's, treating cross-session access as an unknown task id; listTasks with a sessionId returns that session's tasks plus tasks created without one, and the TaskMessageQueue interface now receives the connection's sessionId so requests referencing a related task (io.modelcontextprotocol/related-task in _meta) are resolved against the requesting session before anything is queued. Calls without a sessionId (server-held store, stdio, stateless HTTP) behave as before, and the patch notes residual sharing where a custom TaskStore ignores the sessionId, where Streamable HTTP runs with sessionIdGenerator: undefined, or where a sessionless endpoint shares a store with a sessioned one; it also warns a sessionIdGenerator must never repeat a value, since sessions sharing an id share tasks. The affected package maps to CPE cpe:2.3:a:modelcontextprotocol:typescript-sdk.

Know when Typescript Sdk gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
vuln.today AI 8.6 HIGH

Any connected client can reach an unscoped shared store over the network with no auth (PR:N/AV:N/AC:L); reading others' tasks gives C:H, while cancelling tasks yields only I:L/A:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 20:03 EUVD
CVE Published
Oct 20, 2026 - 18:28 cve.org
HIGH 8.6

DescriptionCVE.org

MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. From version 1.24.0 to before version 1.32.0, 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. This issue has been patched in version 1.32.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 42 npm packages depend on @modelcontextprotocol/sdk (34 direct, 9 indirect)

Ecosystem-wide dependent count for version 1.24.0.

Technical POC Analysis

CWE-639 (Authorization Bypass Through User-Controlled Key), with CWE-862 (Missing Authorization) also assigned.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

The MCP TypeScript SDK versions 1.24.0 through 1.31.0 have a cross-session task access flaw that can expose or allow cancellation of other clients’ experimental task records and results when an HTTP MCP server shares a single InMemoryTaskStore across sessions. The issue is limited to deployments using the deprecated experimental tasks feature with a shared store, but where present it creates cross-client confidentiality risk and possible service disruption; no public exploit identified at time of analysis. Leadership should care because multi-session HTTP services could leak sensitive task data between clients, making inventory and upgrade to 1.32.0 or later a priority.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
widely-used MCP SDK, but production server deployments still emerging
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy