GHSA-6fw5-9hq8-w87g
Dashboard / Vulnerabilities / GHSA-6fw5-9hq8-w87g
Summary: GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor
Details: ## 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/[email protected]` or later (and `@graphql-tools/[email protected]` 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.
References: https://github.com/ardatan/graphql-tools/security/advisories/GHSA-6fw5-9hq8-w87g, https://nvd.nist.gov/vuln/detail/CVE-2026-103921, https://github.com/ardatan/graphql-tools/pull/8426, https://github.com/ardatan/graphql-tools/commit/3831a0661514c91d99971052f983552556880402, https://github.com/ardatan/graphql-tools, https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/[email protected]
Affected packages
Package
Name: @graphql-tools/executor-legacy-ws
Purl: pkg:npm/%40graphql-tools/executor-legacy-ws
Affected ranges
Type: SEMVER
Events:
