Skip to content
OpenAdvisories
High · 8.2 CVE-2026-118665 EUVD-2026-112472GHSA-434m-5hcj-pxf3

GraphQL Tools: Per-request connection parameters persist into later users' WebSocket authentications

Published Oct 28, 2026 · Updated Nov 3, 2026 · Assigned by GitHub_M

Description

GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. Prior to version 1.1.36 of the GraphQL Tools legacy WebSocket executor package, buildWSLegacyExecutor in packages/executors/legacy-ws/src/index.ts retains request.extensions.connectionParams in the closure-scoped executorConnectionParams object after cleanupWebsocket closes a connection. When one executor is reused across different authorization contexts, a later request that omits a sensitive key can send an earlier caller's Authorization or tenant value in its connection_init payload, causing the downstream server to authenticate the later caller as the earlier user. Applications that create a new executor for every request are not affected. This issue is fixed in version 1.1.36 of the GraphQL Tools legacy WebSocket executor package.

Affected products

VendorProductAffectedFixed
ardatan graphql-tools < 9.0.36 —
@graphql-tools executor-legacy-ws < 1.1.36 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @graphql-tools/executor-legacy-ws < 1.1.36 1.1.36 GHSA-434m-5hcj-pxf3

References