Summary
GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor
Advisory 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/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.WSpath 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
webSocketImplthat enforces certificate validation.
References
- https://github.com/advisories/GHSA-6fw5-9hq8-w87g
- 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/releases/tag/@graphql-tools/executor-legacy-ws@1.1.35
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-96222
Microsoft Security Advisory CVE-2026-96222 - .NET Spoofing Vulnerability
- MEDIUMCVE-2026-70194
Microsoft Security Advisory CVE-2026-70194 - .NET and Visual Studio Security Feature Bypass Vulnerability
- CRITICALCVE-2026-105794
MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL
- HIGHCVE-2026-101916
@grpc/grpc-js: In certain configurations, getAuthContext can return unauthorized certificates as though they were authorized
- HIGHCVE-2026-97687
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
- HIGHCVE-2026-84961
undici vulnerable to TLS certificate validation bypass via dropped connect options in BalancedPool