GraphQL Tools legacy WebSocket executor misroutes subscription data
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
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ardatan | graphql-tools | before 9.0.36 | 9.0.36 | Patch available | CNA |
| @graphql-tools | executor-legacy-ws | before 1.1.36 | 1.1.36 | Patch available | CNA |
| — | @graphql-tools/executor-legacy-ws (npm) | before 1.1.36 | 1.1.36 | Patch available | GHSA-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
Timeline
- 2026-10-28 Threatist record created from CVE-2026-118666
- 2026-10-28 Alias added: GHSA-mp66-8ww2-pcwm
- 2026-10-28 Fix available: npm/@graphql-tools/[email protected] · GHSA-mp66-8ww2-pcwm
- 2026-10-28 CVSS score added · GHSA-mp66-8ww2-pcwm
- 2026-10-28 Weakness changed · GHSA-mp66-8ww2-pcwm
- 2026-10-28 5 new references · GHSA-mp66-8ww2-pcwm
- 2026-10-30 Priority changed: MEDIUM → LOW
- 2026-11-03 CISA SSVC decision points changed
- 2026-11-03 Priority changed: LOW → HIGH
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
References
Other 5
- https://github.com/ardatan/graphql-tools/security/advisories/GHSA-mp66-8ww2-pcwm
- https://github.com/ardatan/graphql-tools/pull/8480
- https://github.com/ardatan/graphql-tools/commit/c2f226e6f68236be9e4a577f29faeaa92547458b
- https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/[email protected]
- https://github.com/ardatan/graphql-tools
More ardatan vulnerabilities
- 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
- CVE-2026-118666 · CVE Program
- CVE-2026-118666 · NVD
- FIRST EPSS
- GHSA-mp66-8ww2-pcwm · GitHub Advisory Database · CC BY 4.0
- CVE-2026-118666 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences