GHSA-w88c-7765-q5gg
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
AC:H for inherent race condition timing requirement; C:L added over official C:N to reflect 'Information Disclosure' tag - misrouted responses may leak sensitive data.
Primary rating from Vendor (CNA).
CVSS VectorNVD
Lifecycle Timeline
4Description PRE-NVD
AnalysisAI
Response queue poisoning in Node.js http.Agent allows network-accessible attackers to corrupt the HTTP keep-alive connection pool via a TOCTOU race condition, causing responses to be delivered to the wrong request handler. Affected is Node.js v26.x prior to v26.3.1, as disclosed in the June 2026 security release. Exploitation requires high attack complexity due to the race window, and no public exploit has been identified at time of analysis; this is rated Low severity (CVSS 3.7) by the Node.js team.
Technical ContextAI
The vulnerability resides in Node.js's built-in http.Agent, which manages HTTP/1.1 keep-alive connection pooling and request multiplexing over persistent TCP sockets. CWE-367 (Time-of-check Time-of-use / TOCTOU race condition) is the root cause: the agent checks the state of the response queue at one point in time, but by the time it acts on that state, concurrent request activity has altered the queue, allowing a response frame to be dispatched to the wrong pending request callback. This is structurally similar to HTTP response desynchronization but arises from an internal race rather than protocol-level smuggling. The fix is attributed to Matteo Collina and was shipped in llhttp 9.4.2 (bundled in v26.3.1), as evidenced by the concurrent dep update commit 110840f2c7.
RemediationAI
Upgrade to Node.js v26.3.1 or later, which contains the patched http.Agent response queue logic and the updated llhttp 9.4.2 dependency. The vendor advisory is at https://nodejs.org/en/blog/vulnerability/june-2026-security-releases and the release notes at https://github.com/nodejs/node/releases/tag/v26.3.1. If an immediate upgrade is not feasible, a targeted compensating control is to disable HTTP keep-alive in http.Agent by setting keepAlive: false when constructing agent instances - this eliminates connection reuse and closes the race window entirely, at the cost of one TCP handshake per request (latency and throughput regression under high request volumes). Alternatively, limiting concurrency of outbound HTTP requests sharing a single Agent instance reduces the probability of the race condition being triggered. Generic network-layer controls will not mitigate this issue as it is an internal Node.js runtime race.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig
Eval injection vulnerability in index.js in the syntax-error package before 1.1.1 for Node.js 0.10.x, as used in IBM Rat
crypto/rsa/rsa_ameth.c in OpenSSL 1.0.1 before 1.0.1q and 1.0.2 before 1.0.2e allows remote attackers to cause a denial
Integer overflow in the EVP_EncodeUpdate function in crypto/evp/encode.c in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig
Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH
The BN_mod_sqrt() function, which computes a modular square root, contains a bug that can cause it to loop forever for n
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38344