Every CVE Search/ Get API key

CVE-2026-111768

Model Context Protocol TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation

7.5 HighFix available

The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 1.3.0 until 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/server, HTTP servers did not enforce a limit on the number of array elements and object keys validated in one request. The affected surface is validation of HTTP requests containing arrays or object keys. The trigger is an array-element or object-key validation workload large enough to exhaust memory while remaining within the request size limit. A single request within the default 4 MiB limit can terminate the process with JavaScript heap exhaustion. No credentials are required unless the application authenticates before SDK processing. Tools accepting arrays or records carry the greatest risk. stdio-only servers do not expose the HTTP request path. Upgrading alone does not enable the new validation bound. Operators must configure both a tool-input element bound and an appropriate request body size limit. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/server 2.3.0.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.60%Unchanged since Nov 6, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

Model Context Protocol TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation

The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 1.3.0 until 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/server, HTTP servers did not enforce a limit on the number of array elements and object keys validated in one request. The affected surface is validation of HTTP requests containing arrays or object keys. The trigger is an array-element or object-key validation workload large enough to exhaust memory while remaining within the request size limit. A single request within the default 4 MiB limit can terminate the process with JavaScript heap exhaustion. No credentials are required unless the application authenticates before SDK processing. Tools accepting arrays or records carry the greatest risk. stdio-only servers do not expose the HTTP request path. Upgrading alone does not enable the new validation bound. Operators must configure both a tool-input element bound and an appropriate request body size limit. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/server 2.3.0.

Record
CVE-2026-111768
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-05
EUVDEUVD-2026-117803 7.5

The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 1.3.0 until 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/server, HTTP servers did not enforce a limit on the number of array elements and object keys validated in one request. The affected surface is validation of HTTP requests containing arrays or object keys. The trigger is an array-element or object-key validation workload large enough to exhaust memory while remaining within the request size limit. A single request within the default 4 MiB limit can terminate the process with JavaScript heap exhaustion. No credentials are required unless the application authenticates before SDK processing. Tools accepting arrays or records carry the greatest risk. stdio-only servers do not expose the HTTP request path. Upgrading alone does not enable the new validation bound. Operators must configure both a tool-input element bound and an appropriate request body size limit. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/server 2.3.0.

Record
EUVD-2026-117803
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-05
GitHub AdvisoriesGHSA-46jr-4wx8-v453 7.5

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.

Record
GHSA-46jr-4wx8-v453
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
NVD 7.5

The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 1.3.0 until 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/server, HTTP servers did not enforce a limit on the number of array elements and object keys validated in one request. The affected surface is validation of HTTP requests containing arrays or object keys. The trigger is an array-element or object-key validation workload large enough to exhaust memory while remaining within the request size limit. A single request within the default 4 MiB limit can terminate the process with JavaScript heap exhaustion. No credentials are required unless the application authenticates before SDK processing. Tools accepting arrays or records carry the greatest risk. stdio-only servers do not expose the HTTP request path. Upgrading alone does not enable the new validation bound. Operators must configure both a tool-input element bound and an appropriate request body size limit. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/server 2.3.0.

Record
CVE-2026-111768
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-05
OSV 7.5

Model Context Protocol TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation

The Model Context Protocol TypeScript SDK provides TypeScript client and server implementations of the Model Context Protocol. From 1.3.0 until 1.32.0 in @modelcontextprotocol/sdk and from 2.0.0 until 2.3.0 in @modelcontextprotocol/server, HTTP servers did not enforce a limit on the number of array elements and object keys validated in one request. The affected surface is validation of HTTP requests containing arrays or object keys. The trigger is an array-element or object-key validation workload large enough to exhaust memory while remaining within the request size limit. A single request within the default 4 MiB limit can terminate the process with JavaScript heap exhaustion. No credentials are required unless the application authenticates before SDK processing. Tools accepting arrays or records carry the greatest risk. stdio-only servers do not expose the HTTP request path. Upgrading alone does not enable the new validation bound. Operators must configure both a tool-input element bound and an appropriate request body size limit. This issue is fixed in @modelcontextprotocol/sdk 1.32.0 and @modelcontextprotocol/server 2.3.0.

Record
CVE-2026-111768
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-07
OSVGHSA-46jr-4wx8-v453 7.5

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.

Record
GHSA-46jr-4wx8-v453
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-770
Updated
2026-11-02
Show 9 moreShow less
OSVCLSA-2026-1792574765 No score

TuxCare security update for @modelcontextprotocol/sdk (2 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 2 CVEs. Fixed in 1.30.1-tuxcare.2.

Record
CLSA-2026-1792574765
Updated
2026-11-02
OSVCLSA-2026-1793100011 No score

TuxCare security update for @modelcontextprotocol/sdk (3 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 3 CVEs. Fixed in 1.30.0-tuxcare.2.

Record
CLSA-2026-1793100011
Updated
2026-11-02
OSVCLSA-2026-1793100046 No score

TuxCare security update for @modelcontextprotocol/sdk (2 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 2 CVEs. Fixed in 1.26.0-tuxcare.2.

Record
CLSA-2026-1793100046
Updated
2026-11-02
OSVCLSA-2026-1793102412 No score

TuxCare security update for @modelcontextprotocol/sdk (1 CVE)

TuxCare rebuilt @modelcontextprotocol/sdk to address 1 CVE. Fixed in 1.29.0-tuxcare.3.

Record
CLSA-2026-1793102412
Updated
2026-11-02
OSVCLSA-2026-1793112043 No score

TuxCare security update for @modelcontextprotocol/sdk (4 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 4 CVEs. Fixed in 1.25.2-tuxcare.4.

Record
CLSA-2026-1793112043
Updated
2026-11-02
OSVCLSA-2026-1793112371 No score

TuxCare security update for @modelcontextprotocol/sdk (6 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 6 CVEs. Fixed in 1.13.3-tuxcare.2.

Record
CLSA-2026-1793112371
Updated
2026-11-02
OSVCLSA-2026-1793113170 No score

TuxCare security update for @modelcontextprotocol/sdk (4 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 4 CVEs. Fixed in 1.24.0-tuxcare.4.

Record
CLSA-2026-1793113170
Updated
2026-11-02
OSVCLSA-2026-1793887996 No score

TuxCare security update for @modelcontextprotocol/sdk (3 CVEs)

TuxCare rebuilt @modelcontextprotocol/sdk to address 3 CVEs. Fixed in 1.17.3-tuxcare.4.

Record
CLSA-2026-1793887996
Updated
2026-11-06
OSVROOT-APP-NPM-CVE-2026-111768 No score

CVE-2026-111768 in @modelcontextprotocol/server - Patched by Root

Root has patched CVE-2026-111768 in the @modelcontextprotocol/server package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-111768
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
@modelcontextprotocol/sdk
npm
1.3.0 up to 1.32.0
1.32.0
@modelcontextprotocol/server
npm
2.0.0 up to 2.3.0
2.3.0
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 2 CVEs
1.30.1-tuxcare.0 up to 1.30.1-tuxcare.2, plus listed versions
1.30.11.30.1-tuxcare.1
1.30.1-tuxcare.2
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 3 CVEs
1.30.0-tuxcare.0 up to 1.30.0-tuxcare.2, plus listed versions
1.30.01.30.0-tuxcare.1
1.30.0-tuxcare.2
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 2 CVEs
1.26.0-tuxcare.0 up to 1.26.0-tuxcare.2, plus listed versions
1.26.01.26.0-tuxcare.1
1.26.0-tuxcare.2
@modelcontextprotocol/sdk
TuxCare:npm
1.29.0-tuxcare.0 up to 1.29.0-tuxcare.3, plus listed versions
1.29.01.29.0-tuxcare.11.29.0-tuxcare.2
1.29.0-tuxcare.3
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 4 CVEs
1.25.2-tuxcare.0 up to 1.25.2-tuxcare.4, plus listed versions
1.25.21.25.2-tuxcare.11.25.2-tuxcare.21.25.2-tuxcare.3
1.25.2-tuxcare.4
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 6 CVEs
1.13.3-tuxcare.0 up to 1.13.3-tuxcare.2, plus listed versions
1.13.31.13.3-tuxcare.1
1.13.3-tuxcare.2
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 4 CVEs
1.24.0-tuxcare.0 up to 1.24.0-tuxcare.4, plus listed versions
1.24.01.24.0-tuxcare.11.24.0-tuxcare.21.24.0-tuxcare.3
1.24.0-tuxcare.4
@modelcontextprotocol/sdk
TuxCare:npm
From an advisory covering 3 CVEs
1.17.3-tuxcare.0 up to 1.17.3-tuxcare.4, plus listed versions
1.17.31.17.3-tuxcare.11.17.3-tuxcare.21.17.3-tuxcare.3
1.17.3-tuxcare.4
Show 4 moreShow less
Affected packages
PackageAffectedFixed
@modelcontextprotocol/server
Root:npm
before 2.0.0-aikido.1
2.0.0-aikido.12.0.0-aikido.2
@modelcontextprotocol/sdk
Root:npm
before 1.30.0-aikido.2
1.30.0-aikido.21.31.0-aikido.11.29.0-aikido.21.26.0-aikido.31.26.0-aikido.4
@rootio/modelcontextprotocol__server
Root:npm
before 2.0.0-root.io.1
2.0.0-root.io.12.0.0-root.io.2
@rootio/modelcontextprotocol__sdk
Root:npm
before 1.30.0-root.io.2
1.30.0-root.io.21.31.0-root.io.11.29.0-root.io.21.26.0-root.io.31.26.0-root.io.4

History

History
RecordedChangedSources
affected, aliasesOSV
referencesOSV
affectedNVD
aliases, productsEUVD
description, facts, products, references, severity, titleCVE List
first indexedGitHub Advisories, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-111768 is a high vulnerability (CVSS 7.5) in @modelcontextprotocol Sdk, published October 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.60%, the 48th percentile. Fixed in @modelcontextprotocol/sdk 1.32.0.

References

Show 5 moreShow less
MoveEnter Open