CVE-2026-105481

nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse

Published Oct 23, 2026 CVSS 3.1 · 6.5 Medium EPSS < 1% KEV · Not listed
Description
A flaw in Node.js HTTP Agent connection reuse can cause a client to accept as valid a response that was sent before the client has sent the request. This is an incomplete fix of CVE-2026-48931.

The guard that destroys idle keep-alive sockets when unexpected data arrives only runs when the event loop polls for I/O. If an unsolicited response has already reached the socket but has not been read yet when the socket is handed to a new request, for example because the event loop was busy with synchronous work, the guard is removed without seeing it and the data is parsed as the response to the new request.

This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Title Node.js HTTP Agent Can Misinterpret Stale Response as New Request nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse
References
Metrics threat_severity

None

cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N'}

threat_severity

Moderate

Type Values Removed Values Added
First Time appeared Nodejs
Nodejs nodejs
Vendors & Products Nodejs
Nodejs nodejs
Type Values Removed Values Added
Title Node.js HTTP Agent Can Misinterpret Stale Response as New Request
Type Values Removed Values Added
Description A flaw in Node.js HTTP Agent connection reuse can cause a client to accept as valid a response that was sent before the client has sent the request. This is an incomplete fix of CVE-2026-48931. The guard that destroys idle keep-alive sockets when unexpected data arrives only runs when the event loop polls for I/O. If an unsolicited response has already reached the socket but has not been read yet when the socket is handed to a new request, for example because the event loop was busy with synchronous work, the guard is removed without seeing it and the data is parsed as the response to the new request. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
Weaknesses CWE-367
References
Metrics cvssV3_0

{'score': 6.5, 'vector': 'CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
hackerone
Published
Updated
Nov 2, 2026, 3:54 PM
Reserved
Oct 5, 2026, 3:00 PM
Status
Awaiting Analysis
Published
Oct 23, 2026, 5:17 PM
Modified
Nov 2, 2026, 4:17 PM
Severity
Moderate
Public date
Oct 23, 2026, 4:15 PM