CVE-2026-104852 · GHSA-7mx3-vvmw-hjmv
GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`
- Risk score
- 65/100
- CVSS
- 8.2 v4.0
- Exploit chance (30 days)
- 0.4%
- Published
- 5 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- 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 c…
- Affected
- @graphql-tools/utils (npm) <= 12.0.0
- Fix
- Upgrade @graphql-tools/utils to 12.0.1 or later.
- Exploitation
- No known exploitation
Story map
At a glance
@graphql-tools/utils: Amber, patch this week. 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 c…
The flaws
- CVE-2026-104852: GraphQL Tools has prototype pollution in well-established utility function `mergeDeep` (CVSS 8.2 · EPSS 0%)
- CVE-2026-114604: GraphQL Tools: Prototype pollution in mergeIncrementalResult via non-primitive path segments (CVSS 8.4)
The fix
Upgrade @graphql-tools/utils: 12.0.1 or later on your release line
Who is exposed: @graphql-tools/utils (npm) <= 12.0.0
Where it stands
- No known exploitation
Connects to
- Same weakness: Prototype pollution (CWE-1321). 39 other warnings in 30 days
Why it is Amber
- CVSS 8.2 high
- Remotely exploitable without logging in
- On your watchlist: npm
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| @graphql-tools/utils | npm | <= 12.0.0 | 12.0.1 |
References
- https://github.com/advisories/GHSA-7mx3-vvmw-hjmv
- https://github.com/ardatan/graphql-tools/security/advisories/GHSA-7mx3-vvmw-hjmv
- https://github.com/ardatan/graphql-tools/pull/8423
- https://github.com/graphql-hive/gateway/pull/2600
- https://github.com/ardatan/graphql-tools/commit/0b9529f1988fd36186a7c106a6efe0356f1b7f2e
- https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/utils@12.0.1
- https://github.com/advisories/GHSA-7mx3-vvmw-hjmv
Original description
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.
Last activity 5 Oct 2026. Patch Forecast updates every hour.