GHSA-f897-62hf-6gxq
MCP TypeScript SDK: HTTP server transports and handlers did not limit request body size or JSON-RPC batch length
- Risk score
- 55/100
- CVSS
- 7.5 v3.1
- Published
- 27 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- In affected versions, MCP servers reachable over HTTP put no limit on the size of a POST body or on the number of messages in a JSON-RPC batch. Large requests could exhaust the server's memory, and one long batch could block it from serving anyone else. No credentials were needed, unless your application authenticates…
- Affected
- @modelcontextprotocol/sdk (npm) >= 1.10.0, < 1.30.1; @modelcontextprotocol/server (npm) >= 2.0.0, < 2.1.0; @modelcontextprotocol/node (npm) >= 2.0.0, < 2.1.0; @modelcontextprotocol/hono (npm) >= 2.0.0, < 2.0.1
- Fix
- Upgrade @modelcontextprotocol/sdk to 1.30.1; @modelcontextprotocol/server to 2.1.0; @modelcontextprotocol/node to 2.1.0; @modelcontextprotocol/hono to 2.0.1 or later.
- Exploitation
- No known exploitation
Story map
At a glance
@modelcontextprotocol/sdk: Amber, patch this week. The MCP TypeScript SDK's experimental tasks feature did not check which session created a task, allowing clients to list, read, and cancel each other's tasks. An attacker could exploit this vulnerability to gain control over other clients' tasks.
The flaws
- GHSA-f897-62hf-6gxq: MCP TypeScript SDK: HTTP server transports and handlers did not limit request body size or JSON-RPC batch length (CVSS 7.5)
- CVE-2026-111767: MCP TypeScript SDK: Experimental tasks were not tied to the session that created them (CVSS 8.6 · EPSS 0%)
- CVE-2026-104850: MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server (CVSS 7.5 · EPSS 0%)
- CVE-2026-111768: MCP TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation (CVSS 7.5)
The fix
Upgrade @modelcontextprotocol/sdk: 1.32.0 · 1.31.0 · 2.2.0 or later on your release line
Who is exposed: {'products': ['MCP TypeScript SDK'], 'packages': [{'ecosystem': 'npm', 'name': '@modelcontextprotocol/sdk', 'vulnerable': '>= 1.24.0, < 1.32.0', 'patched': '1.32.0'}], 'versions': ['1.24.0 to 1.32.0 (exclusive)', '1.32.0']}
Where it stands
- No known exploitation
Connects to
- Same weakness: Denial of service (CWE-770). 225 other warnings in 30 days
Why it is Yellow
- CVSS 7.5 high
- Remotely exploitable without logging in
- On your watchlist: npm
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| @modelcontextprotocol/sdk | npm | >= 1.10.0, < 1.30.1 | 1.30.1 |
| @modelcontextprotocol/server | npm | >= 2.0.0, < 2.1.0 | 2.1.0 |
| @modelcontextprotocol/node | npm | >= 2.0.0, < 2.1.0 | 2.1.0 |
| @modelcontextprotocol/hono | npm | >= 2.0.0, < 2.0.1 | 2.0.1 |
References
- https://github.com/advisories/GHSA-f897-62hf-6gxq
- https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-f897-62hf-6gxq
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2698
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2717
- https://github.com/modelcontextprotocol/typescript-sdk/commit/7b781ed4e25355a25d15974f3c76de81299694ed
- https://github.com/modelcontextprotocol/typescript-sdk/commit/a9f6eb709b85459d01e8f2a9e881fef2621756c1
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/1.30.1
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/@modelcontextprotocol/hono@2.0.1
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/@modelcontextprotocol/node@2.1.0
- https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/@modelcontextprotocol/server@2.1.0
Original description
### Summary In affected versions, MCP servers reachable over HTTP put no limit on the size of a POST body or on the number of messages in a JSON-RPC batch. Large requests could exhaust the server's memory, and one long batch could block it from serving anyone else. No credentials were needed, unless your application authenticates requests before they reach the SDK. ### Am I affected? Yes, if clients you do not fully trust can reach your server over Streamable HTTP. A body parser such as `express.json()` does not protect you, because it does not limit batch length. Servers that only use stdio are not affected. Affected versions: - `@modelcontextprotocol/sdk` 1.10.0 through 1.30.0 - `@modelcontextprotocol/server` 2.0.0 - `@modelcontextprotocol/node` 2.0.0 - `@modelcontextprotocol/hono` 2.0.0 ### Fix Upgrade to: - 1.x: `@modelcontextprotocol/sdk` 1.30.1 or later - 2.x: `@modelcontextprotocol/server` 2.1.0, `@modelcontextprotocol/node` 2.1.0 and `@modelcontextprotocol/hono` 2.0.1 or later. Upgrade every one you have installed. Bodies over 4 MiB now get `413`, and batches over 100 messages get `400`. If your clients send larger bodies, raise the new `maxRequestBodySize` option. If you cannot upgrade yet, cap request body size in a reverse proxy.
Last activity 27 Oct 2026. Patch Forecast updates every hour.