GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`
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 } } } } ```
GHSA-7mx3-vvmw-hjmv
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-7mx3-vvmw-hjmv
@graphql-tools/utils
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 12.0.1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.0.1"
}
]
}
],
"package": {
"name": "@graphql-tools/utils",
"purl": "pkg:npm/%40graphql-tools/utils",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-7mx3-vvmw-hjmv/GHSA-7mx3-vvmw-hjmv.json",
"last_known_affected_version_range": "<= 12.0.0"
}
}
]- Related CVEs
- CVE-2026-104852
Source reference:
/aliases
Publisher severity
high
Source reference: /database_specific/severity
- Event
- #85911 · Revision 1
- Added to Heist Feed
- Publisher date