GraphQL legacy WebSocket executor can reuse one user's login on another user's request
If one shared connection is used for several users, a later user's request can be sent with the previous user's login token. The server may then treat the new request as coming from the earlier user.
| Severity | HighCVSS 8.2 of 10 |
|---|---|
| Being exploited? | UnclearNo reports either way yet |
| Fix available? | Yes@graphql-tools/executor-legacy-ws 1.1.36 · since 28 Oct 2026 |
| How sure is this? | Official, 2 sourcesBacked by an official source |
How the attack works simplified
- 1User A requestSends Authorization token in extensions
- 2Shared executorKeeps token in closure state
- 3User B requestOmits auth key entirely
- 4connection_init sentStill carries User A's token
- 5Wrong identityDownstream authenticates as User A
- ResultUser B acts as User A downstream
What happened
In @graphql-tools/executor-legacy-ws, buildWSLegacyExecutor stores extensions.connectionParams in a closure-scoped object that is never cleared, so keys such as Authorization or tenant values persist and are merged into connection_init for later executions that omit them.
Are you affected?
You are affected if you use @graphql-tools/executor-legacy-ws at version 1.1.35 or earlier and reuse one executor across different users or authorization contexts.
| Package / product | Affected versions | Fixed in |
|---|---|---|
| @graphql-tools/executor-legacy-ws · npm | <= 1.1.35 | 1.1.36 |
What to do
- Update @graphql-tools/executor-legacy-ws to 1.1.36 or later
- Until updated, do not reuse one executor instance across different users or authorization contexts; create a new executor per request
- Review downstream logs for requests authenticated with credentials that did not match the calling user
Timeline
- 28 Oct 2026, 21:05 UTCPublicly disclosed
- 28 Oct 2026, 21:05 UTCReported by GitHub Advisory · GitHub Advisory
- 28 Oct 2026, 21:05 UTCPicked up by Zero Radar
- 28 Oct 2026, 21:17 UTCNVD reported on it · NVD
Sources 2 reports, oldest first
Official vendor, government CERT or advisory database
- GraphQL Tools: Per-request connection parameters persist into later users' WebSocket authenticationsGitHub Advisory · 28 Oct 2026, 21:05 UTC
- CVE-2026-118665NVD · 28 Oct 2026, 21:16 UTC
Technical details
- ID
- CVE-2026-118665 · GHSA-434m-5hcj-pxf3
- CVSS
- 8.2 / 10
- Disclosed
- 28 Oct 2026, 21:05 UTC
- On Zero Radar
- 28 Oct 2026, 21:05 UTC (0 min after disclosure)
- Last change
- 28 Oct 2026, 21:17 UTC
The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works