{"id":"CVE-2026-104852","aliases":["GHSA-7mx3-vvmw-hjmv"],"url":"https://o3.security/vulnerability/CVE-2026-104852","summary":"GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`","details":"Closed by https://github.com/ardatan/graphql-tools/pull/8423\nMitigated in Hive Gateway by https://github.com/graphql-hive/gateway/pull/2600\n\nA 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.\n\n\n```graphql\n{\n  shared {\n    fieldA\n    constructor: fieldB {\n      __proto__: child {\n        call: value\n      }\n    }\n  }\n}\n```","published":"2026-10-05T22:56:43.779Z","modified":"2026-10-21T02:54:32.317188564Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"npm","name":"@graphql-tools/utils","fixedVersion":"12.0.1"}],"fix":{"url":"https://github.com/ardatan/graphql-tools/commit/0b9529f1988fd36186a7c106a6efe0356f1b7f2e","label":"ardatan/graphql-tools@0b9529f"},"references":[{"type":"WEB","url":"https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/utils@12.0.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104852.json"},{"type":"ADVISORY","url":"https://github.com/ardatan/graphql-tools/security/advisories/GHSA-7mx3-vvmw-hjmv"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104852"},{"type":"FIX","url":"https://github.com/ardatan/graphql-tools/commit/0b9529f1988fd36186a7c106a6efe0356f1b7f2e"},{"type":"FIX","url":"https://github.com/ardatan/graphql-tools/pull/8423"},{"type":"FIX","url":"https://github.com/graphql-hive/gateway/pull/2600"},{"type":"PACKAGE","url":"https://github.com/ardatan/graphql-tools"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T02:54:32.317188564Z"}}