Cloudanix VulnDB

CVE-2026-105481

Medium · 6.5

CVSS

6.5

EPSS

0.3%

Published

Oct 23, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A programming mistake in Node.js can cause web requests to receive and act on answers that were never meant for them, potentially exposing or corrupting information.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Data Tampering
Component
Library
Class
Improper Input Validation
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The Node.js HTTP Agent reuses keep-alive sockets without ensuring the guard that destroys idle sockets on unexpected data has run; when the event loop is busy with synchronous work an unsolicited response can already be buffered, the guard is bypassed, and the stale data is parsed as the response to a subsequent request.

Why it matters to the business

Applications built on affected Node.js versions may process incorrect or attacker-controlled responses, leading to data disclosure, logic errors, or failed operations; the incomplete fix of a prior issue and recent publication increase urgency for organizations relying on Node.js HTTP clients.

How an attack unfolds

An attacker sends an unsolicited HTTP response to a keep-alive connection; if the target Node.js process is busy and the socket is handed to a new request before the I/O-poll guard executes, the attacker-supplied data is accepted as the legitimate reply.

How to fix it

Upgrade Node.js 26.x, 24.x, and 22.x installations to the latest releases that contain the complete fix for this connection-reuse issue; disable keep-alive where feasible until patches are applied.

How to confirm the fix worked

Verify the installed Node.js version is newer than the affected ranges; exercise HTTP keep-alive workloads under load that triggers synchronous event-loop pauses and confirm unsolicited data no longer produces valid responses.

Typical attack path

  1. Locate Node.js applications using the built-in HTTP/HTTPS Agent with keep-alive enabled
  2. Establish or predict a keep-alive socket and inject an unsolicited response while the event loop is occupied with synchronous work
  3. Trigger a new request on the same socket so the buffered data is parsed as its response
  4. Observe or leverage the resulting incorrect response handling

How to detect it

Inspect application and Node.js process logs for unexpected response bodies on keep-alive connections, mismatched request/response timing, or errors during socket reuse; correlate with event-loop latency metrics.

What your security team should do

  • Prioritize patching all Node.js 22.x/24.x/26.x deployments within the next maintenance window
  • Review and minimize use of keep-alive sockets in internal HTTP clients
  • Monitor upstream Node.js release notes for the exact fixed versions
  • Add runtime checks or wrappers that reject responses arriving before a request was sent

The record

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**.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities