GitHub Advisoryadvisory · npm

GHSA-6fw5-9hq8-w87g GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor

HIGH Published 2026-10-05 Modified 2026-10-05 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