{"affected":[{"product":"graphql-tools","source":"CNA: GitHub_M","vendor":"ardatan","versions":[{"status":"affected","version":"< 9.0.36"}]},{"product":"executor-legacy-ws","source":"CNA: GitHub_M","vendor":"@graphql-tools","versions":[{"status":"affected","version":"< 1.1.36"}]},{"defaultStatus":"unaffected","ecosystem":"npm","packageName":"@graphql-tools/executor-legacy-ws","product":"@graphql-tools/executor-legacy-ws","source":"OSV GHSA-434m-5hcj-pxf3","vendor":"","versions":[{"events":[{"introduced":"0"},{"fixed":"1.1.36"}],"lessThan":"1.1.36","status":"affected","version":"0","versionType":"semver"}]}],"cveId":"CVE-2026-118665","cwes":["CWE-613"],"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.","epss":{"date":"2026-11-02","percentile":0.32903,"score":0.00388},"exploits":[{"kind":"exploit","source":"ADP: CISA-ADP","url":"https://github.com/ardatan/graphql-tools/security/advisories/GHSA-434m-5hcj-pxf3"}],"kev":null,"metrics":[{"score":8.2,"severity":"high","source":"CNA: GitHub_M","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0"}],"modifiedAt":1793713049132,"publishedAt":1793220107228,"references":[{"source":"CNA: GitHub_M","tags":["x_refsource_CONFIRM"],"url":"https://github.com/ardatan/graphql-tools/security/advisories/GHSA-434m-5hcj-pxf3"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/ardatan/graphql-tools/pull/8480"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/ardatan/graphql-tools/commit/c2f226e6f68236be9e4a577f29faeaa92547458b"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/ardatan/graphql-tools/releases/tag/@graphql-tools/executor-legacy-ws@1.1.36"},{"source":"ADP: CISA-ADP","tags":["exploit"],"url":"https://github.com/ardatan/graphql-tools/security/advisories/GHSA-434m-5hcj-pxf3"},{"source":"OSV / GitHub Security Advisories","tags":["advisory"],"url":"https://github.com/advisories/GHSA-434m-5hcj-pxf3"},{"source":"OSV / GitHub Security Advisories","tags":["osv"],"url":"https://osv.dev/vulnerability/GHSA-434m-5hcj-pxf3"}],"remediation":[{"kind":"fix","source":"OSV GHSA-434m-5hcj-pxf3","text":"@graphql-tools/executor-legacy-ws (npm): OSV reports a fixed version 1.1.36. Check the advisory for supported release branches.","url":"https://github.com/advisories/GHSA-434m-5hcj-pxf3"}],"revision":"572b30bd14e4801122577b4754849690b1567236d19c14aa2eeaee4192bf06dc","sources":[{"modifiedAt":1793713049132,"name":"CNA: GitHub_M","retrievedAt":1793714955039,"url":"https://www.cve.org/CVERecord?id=CVE-2026-118665"},{"modifiedAt":1793222105143,"name":"OSV / GitHub Security Advisories","retrievedAt":1793714955704,"url":"https://osv.dev/vulnerability/GHSA-434m-5hcj-pxf3"},{"modifiedAt":null,"name":"FIRST EPSS","retrievedAt":1793714963838,"url":"https://api.first.org/data/v1/epss?cve=CVE-2026-118665"}],"ssvc":{"assessedAt":1793712948748,"automatable":"no","exploitation":"poc","source":"ADP: CISA-ADP","technicalImpact":"partial"},"status":"published","title":"GraphQL Tools: Per-request connection parameters persist into later users' WebSocket authentications","updatedAt":1793714963838}