GHSA-46jr-4wx8-v453 - MCP TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation
### Summary
In affected versions, servers put no limit on how many array elements and object keys they validated in one request. One HTTP request within the default 4 MiB size limit could exhaust the server's memory, and the process aborted with `JavaScript heap out of memory`.
No credentials are needed, unless you authenticate requests before they reach the SDK.
### Am I affected?
Yes, if clients you do not fully trust can reach your server over HTTP. The risk is highest for `McpServer` tools whose input contains an array or a record. stdio-only servers are not affected.
Affected versions:
- `@modelcontextprotocol/sdk` 1.3.0 through 1.31.0
- `@modelcontextprotocol/server` 2.0.0 through 2.2.0
### Fix
Upgrade to:
- 1.x: `@modelcontextprotocol/sdk` 1.32.0 or later
- 2.x: `@modelcontextprotocol/server` 2.3.0 or later
**Upgrading alone changes nothing.** The patched versions add an `McpServer` option, `maxToolInputElements`, that is off by default. Make both of these changes:
1. Set `maxToolInputElements` just above the largest input your tools need, for example `new McpServer(info, { maxToolInputElements: 10_000 })`. It counts array elements and object keys in a call's arguments. A call over the limit gets an `isError: true` result.
2. Lower the request size limit to what your tools need. The option covers tool arguments only, and the size limit covers everything else. Set `maxRequestBodySize` on the transport or `createMcpHandler()`. If you parse the body yourself, for example with `express.json()` or Fastify, set that parser's limit.
If you cannot upgrade yet, make the second change. `maxRequestBodySize` needs `@modelcontextprotocol/sdk` 1.30.1 or `@modelcontextprotocol/server` 2.1.0. Below that, use a reverse proxy.
HIGH
Severity & confidence
Source severityhigh
Platform severityhigh
Confidencemedium
Exploitationunknown
CVSS7.5
Affected
Vendors@modelcontextprotocol
Products@modelcontextprotocol/sdk@modelcontextprotocol/server
Reporting sources (1)
GitHub Security Advisories
Timeline & provenance
Published2026-10-20T20:06:35
Last updated2026-10-21T05:51:56
Ingested2026-10-20T20:16:49
FreshnessNEAR-REAL-TIME
Threat typeadvisory
Recommended action
Review the advisory and upgrade affected packages to the first patched version.
Next steps
- Identify affected systems in your environment.
- Apply the vendor patch or mitigation guidance.
- Review logs for indicators described in the advisory.
- Follow the affected vendor/product to track updates.
Confidence explanation
Reported by a single or secondary source; treat as indicative, verify before acting.
Source type: vendor ยท Original: GitHub Security Advisories