GHSA-7mx3-vvmw-hjmv

    Dashboard / Vulnerabilities / GHSA-7mx3-vvmw-hjmv

    GHSA-7mx3-vvmw-hjmv

    Published: 5 Oct 2026Last Modified: 5 Oct 2026

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

    Details: 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 } } } } ```

    Affected packages

    Package

    Name: @graphql-tools/utils

    Purl: pkg:npm/%40graphql-tools/utils

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0
    Fixed -12.0.1

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-7mx3-vvmw-hjmv | CVE-DB