IT SBIT Services
Schneeberger
DEEN
CVE tracker

GraphQL Tools: Prototype pollution in mergeDeep function

CVE-2026-104852High 8.2

← All vulnerabilities

Summary

The mergeDeep function of the GraphQL Tools utils package (@graphql-tools/utils) up to version 12.0.0 does not block prototype keys such as __proto__, constructor or prototype when merging objects. An unauthenticated client can send crafted GraphQL field aliases that make responses from two subgraphs collide during supergraph merging, which can overwrite Function.prototype.call in the Node.js process. Subsequent requests then fail until the process is restarted, so the impact is mainly denial of service.

Affected

  • @graphql-tools/utils up to and including 12.0.0 (prior to 12.0.1)

Fixed in

  • @graphql-tools/utils 12.0.1 or later

Workaround

Unknown. The vendor provides no workaround; upgrading is the fix. Where direct upgrades are blocked, an npm overrides entry can force a patched version into transitive dependencies.

Exploitation

  • No confirmed exploitation in the wild in the sources reviewed.
  • CISA SSVC: exploitation none, not automatable, technical impact partial.
  • Not listed in CISA KEV.
  • EPSS below 1 percent.

Our recommendation

  • Run npm ls @graphql-tools/utils and npm audit across all projects, including transitive dependencies.
  • Upgrade to 12.0.1 or later; where a dependency pins an older range, use an npm overrides entry.
  • Prioritise internet-facing GraphQL gateways and federated setups.
  • Restart affected processes after patching and monitor for failing requests.
  • Check whether the separate mergeIncrementalResult advisory also applies to your version.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 17:02.

Original description (NVD)

GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. Prior to 12.0.1, the GraphQL Tools utils package's mergeDeep function follows inherited properties while recursively merging source objects and does not exclude __proto__, constructor, or prototype keys. An unauthenticated GraphQL client can alias fields to those names so responses from two subgraphs collide during ordinary supergraph result merging, causing mergeDeep to traverse Object and Function prototypes and overwrite Function.prototype.call with a subgraph-supplied value. This breaks subsequent requests in the process until restart. This issue is fixed in version 12.0.1.

NVD references (5)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.