GitHub Advisoryadvisory · npm
GHSA-6fw5-9hq8-w87g GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor
HIGH
Official page ↗
- Aliases
- CVE-2026-103921
- Ecosystem
- npm
- Packages
- @graphql-tools/executor-legacy-ws
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
- Weaknesses
- CWE-295
- Reviewed
- 2026-10-05
Affected packages
• npm @graphql-tools/executor-legacy-ws: < 1.1.35 → fixed in 1.1.35
Description
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.
Related
Alias · CVE (1)
- CVE-2026-103921 GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. vulnerability
Weakness · CWE (1)
- CWE-295 Improper Certificate Validation weakness
References
- https://github.com/ardatan/graphql-tools/security/advisories/GHSA-6fw5-9hq8-w87g web
- https://nvd.nist.gov/vuln/detail/CVE-2026-103921 advisory
- https://github.com/ardatan/graphql-tools/pull/8426 web
- https://github.com/ardatan/graphql-tools/commit/3831a0661514c91d99971052f983552556880402 web
- https://github.com/ardatan/graphql-tools package
- https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/[email protected] web