Patch Forecast
Yellow warning
Plan into this sprint.

CVE-2026-118666 · GHSA-mp66-8ww2-pcwm

GraphQL Tools: Shared legacy executor routes one subscription's results to a different caller

Risk score
46/100
CVSS
6.0 v4.0
Published
28 Oct 2026

Open in the live forecast Today's forecast

What to know

What it is
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 n…
Affected
@graphql-tools/executor-legacy-ws (npm) <= 1.1.35
Fix
Upgrade @graphql-tools/executor-legacy-ws to 1.1.36 or later.
Exploitation
Public proof of concept

Story map

Story map: @graphql-tools/executor-legacy-wsTHE FLAWSTHE FIXCVE-2026-118666GraphQL Tools: Shared legacyexecutor routes onesubscription's results to a…CVSS 6.0CVE-2026-118665GraphQL Tools: Per-requestconnection parameters persistinto later users' WebSocket…CVSS 8.2CVE-2026-103921GraphQL Tools: TLS CertificateValidation Disabled in LegacyGraphQL WebSocket ExecutorCVSS 7.4 · EPSS 0%Upgrade…1.1.36 · 1.1.35or later on your release lineWho is exposed{'products': ['GraphQL Tools'],'packages':['@graphql-tools/executor-legacy-ws'], 'versions': ['<= 1.1.35']}AMBER · PATCH THIS WEEK@graphql-tools/executor-legacy-…GraphQL Tools' legacyWebSocket executor package hasa vulnerability whereper-request connectionparameters persist into laterusers' WebSocketauthentications, allowing an…Where it standsPublic proof of conceptCONNECTS TOSame weaknessInformation disclosure (CWE-200)290 other warnings in 30 days →
Story map: the flaws, the fix, how it unfolded and what it connects to. Boxes link to the record or article.

At a glance

@graphql-tools/executor-legacy-ws: Amber, patch this week. GraphQL Tools' legacy WebSocket executor package has a vulnerability where per-request connection parameters persist into later users' WebSocket authentications, allowing an attacker to authenticate as an earlier user. This can be exploited by sending an earlier caller's Authorization or tenant value in the connection_init payload.

The flaws

  • CVE-2026-118666: GraphQL Tools: Shared legacy executor routes one subscription's results to a different caller (CVSS 6.0)
  • CVE-2026-118665: GraphQL Tools: Per-request connection parameters persist into later users' WebSocket authentications (CVSS 8.2)
  • CVE-2026-103921: GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor (CVSS 7.4 · EPSS 0%)

The fix

Upgrade @graphql-tools/executor-legacy-ws: 1.1.36 · 1.1.35 or later on your release line

Who is exposed: {'products': ['GraphQL Tools'], 'packages': ['@graphql-tools/executor-legacy-ws'], 'versions': ['<= 1.1.35']}

Where it stands

  • Public proof of concept

Connects to

Why it is Yellow

  • CVSS 6.0 medium
  • Public exploit or proof of concept referenced
  • On your watchlist: npm

Affected packages

PackageEcosystemVulnerableFixed in
@graphql-tools/executor-legacy-wsnpm<= 1.1.351.1.36

References

Original description

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.

Last activity 28 Oct 2026. Patch Forecast updates every hour.