Read the docs
TI-2026-85665 Aliases CVE-2026-114604

Prototype pollution in GraphQL Tools mergeIncrementalResult helper

Priority LOW 37CWE-1321Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
—
Confidentiality · integrity · availability
Low · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

GraphQL Tools and @graphql-tools/utils from 10.10.1 before 12.0.2 are affected. The mergeIncrementalResult helper does not check that path segments are primitive values, so non-primitive segments bypass checks for __proto__, constructor and prototype (CWE-1321). A malicious or compromised upstream server sending crafted @defer or @stream responses can write attacker-controlled properties to Object.prototype in the consuming Node.js process.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. From 10.10.1 until 12.0.2, the @graphql-tools/utils mergeIncrementalResult helper passes incrementalResult.path segments to setObjectKeyPath without runtime primitive-type validation. A non-primitive segment can bypass strict comparisons against __proto__, constructor, and prototype, then be coerced during property access so a malicious or compromised upstream incremental GraphQL response writes attacker-controlled properties to Object.prototype in the consuming Node.js process. The affected implementation is packages/utils/src/mergeIncrementalResult.ts and is reachable when consumers merge untrusted @defer or @stream transport results. This issue is fixed in version 12.0.2.

Why it matters now

EPSS 0.00521 44th percentileScored 2026-11-07
Fix Fixed graphql-tools (ardatan): 12.0.2@graphql-tools/utils (npm): 12.0.2

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
ardatangraphql-tools10.10.1 to before 12.0.212.0.2Patch availableCNA
—@graphql-tools/utils (npm)10.10.1 to before 12.0.212.0.2Patch availableGHSA-c4qx-w738-7hr3
  • graphql-tools Vendorardatan Affected 10.10.1 to before 12.0.2 Fixed in 12.0.2 Patch available CNA
  • @graphql-tools/utils (npm) Vendor— Affected 10.10.1 to before 12.0.2 Fixed in 12.0.2 Patch available GHSA-c4qx-w738-7hr3

Remediation

Update GraphQL Tools and @graphql-tools/utils to 12.0.2, the fixed version.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA graphql-tools (ardatan) Fixed in 12.0.2
  • Fix · GHSA-c4qx-w738-7hr3 @graphql-tools/utils (npm) Fixed in 12.0.2 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Important. Red Hat's page for this CVE →

Not affected: 6 products
  • OpenShift Serverless
  • Red Hat Developer Hub 1
  • Red Hat OpenShift AI (RHOAI)
  • Red Hat OpenShift Container Platform 4
  • Red Hat OpenShift Container Platform 5
  • Self-service automation portal 2

Timeline

  1. 2026-11-05 Threatist record created from CVE-2026-114604
  2. 2026-11-06 Affected versions changed · Red Hat
  3. 2026-11-06 CVSS score added · Red Hat
  4. 2026-11-07 Priority changed: MEDIUM → LOW

References

  • TI-2026-82206 Stale connection parameters in GraphQL Tools WebSocket executor CVSS 4.0HIGH 8.2
  • TI-2026-82207 GraphQL Tools legacy WebSocket executor misroutes subscription data CVSS 4.0MEDIUM 6.0
  • TI-2026-68299 Prototype pollution in GraphQL Tools mergeDeep function CVSS 4.0HIGH 8.2
  • TI-2026-65765 GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor CVSS 3.1HIGH 7.4

Sources