GitHub Advisoryadvisory · npm
GHSA-7mx3-vvmw-hjmv GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`
HIGH
Official page ↗
- Aliases
- CVE-2026-104852
- Ecosystem
- npm
- Packages
- @graphql-tools/utils
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
- Weaknesses
- CWE-1321
- Reviewed
- 2026-10-05
Affected packages
• npm @graphql-tools/utils: < 12.0.1 → fixed in 12.0.1
Description
Closed by https://github.com/ardatan/graphql-tools/pull/8423
Mitigated in Hive Gateway by https://github.com/graphql-hive/gateway/pull/2600
A client can alias fields to `constructor`, `__proto__` or `prototype` so that the response keys from two subgraphs collide on those names during result merging. Because `mergeDeep` recursed through inherited properties, the merge walked `{}.constructor` to `Object`, then `Object.__proto__` to `Function.prototype`, and wrote a subgraph-supplied value over `Function.prototype.call`, breaking every subsequent request in the process until restart. This is remotely triggerable by an unauthenticated client with a single query against any supergraph that merges an object from two subgraphs, which is the ordinary `@shareable` or entity case, so it is a denial of service rather than a theoretical hardening issue.
```graphql
{
shared {
fieldA
constructor: fieldB {
__proto__: child {
call: value
}
}
}
}
```
Related
Alias · CVE (1)
- CVE-2026-104852 GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. vulnerability
Weakness · CWE (1)
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness
References
- https://github.com/ardatan/graphql-tools/security/advisories/GHSA-7mx3-vvmw-hjmv web
- https://github.com/ardatan/graphql-tools/pull/8423 web
- https://github.com/graphql-hive/gateway/pull/2600 web
- https://github.com/ardatan/graphql-tools/commit/0b9529f1988fd36186a7c106a6efe0356f1b7f2e web
- https://github.com/ardatan/graphql-tools package
- https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/[email protected] web