Every CVE Search/ Get API key

CVE-2026-104852

GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`

8.2 HighFix available

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.

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.45%Up 0.1 points since Oct 6, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`

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.

Record
CVE-2026-104852
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1321
Updated
2026-11-02
EUVDEUVD-2026-92849 8.2

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.

Record
EUVD-2026-92849
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-7mx3-vvmw-hjmv 8.2

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.

{
  shared {
    fieldA
    constructor: fieldB {
      __proto__: child {
        call: value
      }
    }
  }
}
Record
GHSA-7mx3-vvmw-hjmv
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1321
Updated
2026-11-02
NVD 8.2

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.

Record
CVE-2026-104852
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-1321
Updated
2026-11-02
OSV 8.2

GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`

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.

Record
CVE-2026-104852
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1321
Updated
2026-11-02
OSVGHSA-7mx3-vvmw-hjmv 8.2

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.

{
  shared {
    fieldA
    constructor: fieldB {
      __proto__: child {
        call: value
      }
    }
  }
}
Record
GHSA-7mx3-vvmw-hjmv
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-1321
Updated
2026-11-02
Show 14 moreShow less
OSVCLSA-2026-1791291395 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 11.2.2-tuxcare.1.

Record
CLSA-2026-1791291395
Updated
2026-11-02
OSVCLSA-2026-1792937883 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 6.0.9-tuxcare.1.

Record
CLSA-2026-1792937883
Updated
2026-11-02
OSVCLSA-2026-1793018204 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.9.0-tuxcare.1.

Record
CLSA-2026-1793018204
Updated
2026-11-02
OSVCLSA-2026-1793019970 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 7.10.0-tuxcare.2.

Record
CLSA-2026-1793019970
Updated
2026-11-02
OSVCLSA-2026-1793020728 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.9.1-tuxcare.1.

Record
CLSA-2026-1793020728
Updated
2026-11-02
OSVCLSA-2026-1793021479 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.6.5-tuxcare.1.

Record
CLSA-2026-1793021479
Updated
2026-11-02
OSVCLSA-2026-1793022219 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.8.0-tuxcare.1.

Record
CLSA-2026-1793022219
Updated
2026-11-02
OSVCLSA-2026-1793023448 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.12.0-tuxcare.1.

Record
CLSA-2026-1793023448
Updated
2026-11-02
OSVCLSA-2026-1793047049 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 9.2.1-tuxcare.1.

Record
CLSA-2026-1793047049
Updated
2026-11-02
OSVCLSA-2026-1793047143 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 8.13.1-tuxcare.1.

Record
CLSA-2026-1793047143
Updated
2026-11-02
OSVCLSA-2026-1793047238 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 10.9.1-tuxcare.1.

Record
CLSA-2026-1793047238
Updated
2026-11-02
OSVCLSA-2026-1793113090 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 12.0.0-tuxcare.1.

Record
CLSA-2026-1793113090
Updated
2026-11-02
OSVCLSA-2026-1793113298 No score

TuxCare security update for @graphql-tools/utils (1 CVE)

TuxCare rebuilt @graphql-tools/utils to address 1 CVE. Fixed in 10.11.0-tuxcare.1.

Record
CLSA-2026-1793113298
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-104852 No score

CVE-2026-104852 in @graphql-tools/utils - Patched by Root

Root has patched CVE-2026-104852 in the @graphql-tools/utils package for Root:npm. Multiple fixed versions available.

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

Affected products

Affected packages

Affected packages
PackageAffectedFixed
@graphql-tools/utils
npm
through 12.0.0
12.0.1
@graphql-tools/utils
TuxCare:npm
11.2.2-tuxcare.0 up to 11.2.2-tuxcare.1, plus listed versions
11.2.2
11.2.2-tuxcare.1
@graphql-tools/utils
TuxCare:npm
6.0.9-tuxcare.0 up to 6.0.9-tuxcare.1, plus listed versions
6.0.9
6.0.9-tuxcare.1
@graphql-tools/utils
TuxCare:npm
8.9.0-tuxcare.0 up to 8.9.0-tuxcare.1, plus listed versions
8.9.0
8.9.0-tuxcare.1
@graphql-tools/utils
TuxCare:npm
7.10.0-tuxcare.0 up to 7.10.0-tuxcare.2, plus listed versions
7.10.07.10.0-tuxcare.1
7.10.0-tuxcare.2
@graphql-tools/utils
TuxCare:npm
8.9.1-tuxcare.0 up to 8.9.1-tuxcare.1, plus listed versions
8.9.1
8.9.1-tuxcare.1
@graphql-tools/utils
TuxCare:npm
8.6.5-tuxcare.0 up to 8.6.5-tuxcare.1, plus listed versions
8.6.5
8.6.5-tuxcare.1
@graphql-tools/utils
TuxCare:npm
8.8.0-tuxcare.0 up to 8.8.0-tuxcare.1, plus listed versions
8.8.0
8.8.0-tuxcare.1
@graphql-tools/utils
TuxCare:npm
8.12.0-tuxcare.0 up to 8.12.0-tuxcare.1, plus listed versions
8.12.0
8.12.0-tuxcare.1
@graphql-tools/utils
TuxCare:npm
9.2.1-tuxcare.0 up to 9.2.1-tuxcare.1, plus listed versions
9.2.1
9.2.1-tuxcare.1
Show 7 moreShow less
Affected packages
PackageAffectedFixed
@graphql-tools/utils
TuxCare:npm
8.13.1-tuxcare.0 up to 8.13.1-tuxcare.1, plus listed versions
8.13.1
8.13.1-tuxcare.1
@graphql-tools/utils
TuxCare:npm
10.9.1-tuxcare.0 up to 10.9.1-tuxcare.1, plus listed versions
10.9.1
10.9.1-tuxcare.1
@graphql-tools/utils
TuxCare:npm
12.0.0-tuxcare.0 up to 12.0.0-tuxcare.1, plus listed versions
12.0.0
12.0.0-tuxcare.1
@graphql-tools/utils
TuxCare:npm
10.11.0-tuxcare.0 up to 10.11.0-tuxcare.1, plus listed versions
10.11.0
10.11.0-tuxcare.1
@graphql-tools/utils
npm
before 12.0.1
12.0.1
@graphql-tools/utils
Root:npm
before 10.5.6-aikido.1
10.5.6-aikido.110.6.2-aikido.111.1.0-aikido.18.12.0-aikido.110.0.5-aikido.18.13.1-aikido.110.5.4-aikido.111.0.0-aikido.18.9.0-aikido.111.2.2-aikido.19.2.1-aikido.110.11.0-aikido.112.0.0-aikido.110.6.1-aikido.19.0.0-aikido.111.0.0-aikido.211.2.2-aikido.210.11.0-aikido.211.1.0-aikido.212.0.0-aikido.2
@rootio/graphql-tools__utils
Root:npm
before 10.5.6-root.io.1
10.5.6-root.io.110.6.2-root.io.111.1.0-root.io.18.12.0-root.io.110.0.5-root.io.18.13.1-root.io.110.5.4-root.io.111.0.0-root.io.18.9.0-root.io.111.2.2-root.io.19.2.1-root.io.110.11.0-root.io.112.0.0-root.io.110.6.1-root.io.19.0.0-root.io.111.0.0-root.io.211.2.2-root.io.210.11.0-root.io.211.1.0-root.io.212.0.0-root.io.2

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

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

In short

CVE-2026-104852 is a high vulnerability (CVSS 8.2) in Ardatan Graphql-tools, published October 5, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. Fixed in @graphql-tools/utils 12.0.1.

References

MoveEnter Open