GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor
## Impact `buildWSLegacyExecutor()` in `@graphql-tools/executor-legacy-ws` previously hardcoded `rejectUnauthorized: false` when creating WebSocket connections over WSS. This disabled TLS certificate validation, allowing a network-positioned attacker to perform a Man-in-the-Middle (MITM) attack against applications that use this executor with a `wss://` endpoint. Credentials passed via `connectionParams` or `headers` could be intercepted, and subscription data could be tampered with. **Who is impacted:** Applications using `@graphql-tools/executor-legacy-ws` (directly or via `@graphql-tools/url-loader` with `SubscriptionProtocol.LEGACY_WS`) to connect to a `wss://` endpoint from Node.js while sending authentication material over the connection. Browser WebSocket clients are unaffected by this option (browsers always validate certificates). ## Patches Upgrade to `@graphql-tools/executor-legacy-ws@1.1.35` or later (and `@graphql-tools/url-loader@9.1.9` or later if you use the loader). TLS certificate validation is enabled by default. Callers that intentionally use self-signed certificates in trusted environments can opt out with `rejectUnauthorized: false`. ## Workarounds - Prefer the modern `graphql-ws` / `SubscriptionProtocol.WS` path where possible. - Until upgraded, avoid sending secrets over legacy WSS connections, or terminate TLS at a trusted proxy and use `ws://` only on trusted networks. - Supply a custom `webSocketImpl` that enforces certificate validation.
GHSA-6fw5-9hq8-w87g
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-6fw5-9hq8-w87g
@graphql-tools/executor-legacy-ws
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 1.1.35
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.1.35"
}
]
}
],
"package": {
"name": "@graphql-tools/executor-legacy-ws",
"purl": "pkg:npm/%40graphql-tools/executor-legacy-ws",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-6fw5-9hq8-w87g/GHSA-6fw5-9hq8-w87g.json",
"last_known_affected_version_range": "<= 1.1.34"
}
}
]- Related CVEs
- CVE-2026-103921
Source reference:
/aliases
Publisher severity
high
Source reference: /database_specific/severity
- Event
- #85915 · Revision 1
- Added to Heist Feed
- Publisher date