Read the docs

GraphQL Tools legacy WebSocket executor misroutes subscription data

Priority HIGH 66CWE-200Published · Updated

Key facts

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

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200.

Summary

The GraphQL Tools legacy WebSocket executor before 1.1.36 (@graphql-tools/executor-legacy-ws) reuses one WebSocket for overlapping subscriptions. The handler sends results to the newest subscriber without checking the operation id, exposing data (CWE-200). A low-privileged remote caller sharing the executor can receive another user's authorized subscription payload while the earlier stream is starved.

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. Prior to version 1.1.36 of the GraphQL Tools legacy WebSocket executor package, buildWSLegacyExecutor in packages/executors/legacy-ws/src/index.ts reuses one WebSocket and replaces its single websocket.onmessage handler whenever a new overlapping subscription starts. The handler delivers LEGACY_WS.DATA frames to the newest observer without comparing data.id with the subscription operation id, so a caller using the same executor can receive another user's authorized subscription payload while the earlier caller's stream is starved. This issue is fixed in version 1.1.36 of the GraphQL Tools legacy WebSocket executor package.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00335 27th percentileScored 2026-11-07
Fix Fixed graphql-tools (ardatan): 9.0.36executor-legacy-ws (@graphql-tools): 1.1.36+1 more product

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ardatangraphql-toolsbefore 9.0.369.0.36Patch availableCNA
@graphql-toolsexecutor-legacy-wsbefore 1.1.361.1.36Patch availableCNA
—@graphql-tools/executor-legacy-ws (npm)before 1.1.361.1.36Patch availableGHSA-mp66-8ww2-pcwm
  • graphql-tools Vendorardatan Affected before 9.0.36 Fixed in 9.0.36 Patch available CNA
  • executor-legacy-ws Vendor@graphql-tools Affected before 1.1.36 Fixed in 1.1.36 Patch available CNA
  • @graphql-tools/executor-legacy-ws (npm) Vendor— Affected before 1.1.36 Fixed in 1.1.36 Patch available GHSA-mp66-8ww2-pcwm

Remediation

Update @graphql-tools/executor-legacy-ws to version 1.1.36 and graphql-tools to version 9.0.36.

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

  • Fix · CNA graphql-tools (ardatan) Fixed in 9.0.36
  • Fix · CNA executor-legacy-ws (@graphql-tools) Fixed in 1.1.36
  • Fix · GHSA-mp66-8ww2-pcwm @graphql-tools/executor-legacy-ws (npm) Fixed in 1.1.36 Advisory →

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-28 Threatist record created from CVE-2026-118666
  2. 2026-10-28 Alias added: GHSA-mp66-8ww2-pcwm
  3. 2026-10-28 Fix available: npm/@graphql-tools/[email protected] · GHSA-mp66-8ww2-pcwm
  4. 2026-10-28 CVSS score added · GHSA-mp66-8ww2-pcwm
  5. 2026-10-28 Weakness changed · GHSA-mp66-8ww2-pcwm
  6. 2026-10-28 5 new references · GHSA-mp66-8ww2-pcwm
  7. 2026-10-30 Priority changed: MEDIUM → LOW
  8. 2026-11-03 CISA SSVC decision points changed
  9. 2026-11-03 Priority changed: LOW → HIGH
  10. 2026-11-06 Affected versions changed · Red Hat
  11. 2026-11-06 CVSS score added · Red Hat

References

  • TI-2026-82206 Stale connection parameters in GraphQL Tools WebSocket executor CVSS 4.0HIGH 8.2
  • TI-2026-85665 Prototype pollution in GraphQL Tools mergeIncrementalResult helper CVSS 4.0HIGH 8.4
  • 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