CVE-2026-48931
Low · 3.7CVSS
3.7
EPSS
0.3%
Published
Jun 22, 2026
CISA due date
—
Cloudanix analysis
Some Node.js applications could be tricked into trusting a fake web response before they actually send the request.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw is in Node.js HTTP Agent client-side response handling. Under specific timing and connection-state conditions, a remote HTTP peer can send a response before the Node.js client has actually sent its request, and the client may incorrectly accept that premature response as valid for the pending request. This creates HTTP response confusion: application logic may process attacker-controlled status codes, headers, or body content as though they came from the intended request. The expected impact is limited integrity compromise of client-side HTTP interactions; the published scoring does not indicate direct confidentiality loss or denial of service.
Why it matters to the business
Applications built on affected Node.js 22, 24, or 26 runtimes may make business decisions based on forged or mismatched HTTP responses when communicating with malicious, compromised, or attacker-influenced HTTP services. This could affect workflows such as API integrations, webhook consumers, metadata fetchers, package or artifact retrieval, service-to-service calls, or automation that trusts outbound HTTP responses. The CVSS and EPSS values are low and there is no known KEV listing or mature public exploit signal, but the issue is still relevant because Node.js is widely deployed and HTTP client behavior is foundational to many applications.
How an attack unfolds
An attacker must be able to influence the HTTP peer that a Node.js application connects to, such as by controlling a destination service, compromising an upstream service, influencing DNS or routing in a suitable position, or operating a proxy used by the application. The attacker prepares a server or intermediary that sends an HTTP response before the Node.js client has transmitted the corresponding request. Due to improper validation of the HTTP Agent state, the Node.js client may associate that early response with a later request and pass it to application code as legitimate. The application may then parse and trust attacker-controlled response metadata or content, potentially causing incorrect authorization decisions, poisoned cached data, false success or failure handling, or use of malicious returned content. Exploitation is likely timing- and topology-dependent, consistent with the high attack complexity and currently low observed exploitation probability.
How to fix it
Upgrade affected Node.js runtimes to the vendor-provided patched releases for the Node.js 22, 24, and 26 release lines as soon as fixed versions are available through official Node.js channels or operating-system/package-maintainer updates. Because no exact fixed versions were provided in the input, track the official Node.js security release notes for CVE-2026-48931 and standardize on patched runtime baselines across servers, containers, developer images, CI runners, and serverless/runtime configurations. As interim risk reduction, avoid making security-sensitive decisions solely from unauthenticated HTTP responses, prefer HTTPS with strict certificate validation, restrict outbound destinations, avoid untrusted proxies, isolate HTTP Agents by origin/security boundary, and consider disabling connection reuse where operationally feasible until patched. Rebuild and redeploy applications after updating the Node.js runtime, including base container images and embedded runtime distributions.
How to confirm the fix worked
Confirm exposure by inventorying runtime versions with commands such as `node -v`, package-manager queries, container image scans, SBOMs, and CI/build manifests, then map results to the patched Node.js releases once published. Validate remediation by confirming all deployed workloads use patched Node.js 22, 24, or 26 builds, including transitive base images and platform-provided runtimes. For functional validation, run a controlled regression test using a test HTTP server that sends a response before receiving a request; patched clients should reject, close, or otherwise not treat the premature response as the valid response to the request. Review outbound HTTP client integration tests for cases where unexpected status codes, headers, or bodies are trusted without independent validation.
Typical attack path
- Identify a Node.js application using affected Node.js 22, 24, or 26 runtime lines for outbound HTTP requests.
- Gain influence over an HTTP endpoint, proxy, network path, or service destination that the application contacts.
- Establish or intercept a client connection where the HTTP Agent is expected to send a request.
- Send a crafted HTTP response before the client transmits the associated request.
- Rely on the vulnerable client behavior to accept the premature response as valid.
- Cause the application to act on attacker-controlled response status, headers, or body content.
How to detect it
There is no universal on-host artifact proving exploitation because the issue occurs inside normal outbound HTTP client handling and may only appear as a logically incorrect response. Detection should focus on application, proxy, egress, and upstream service logs. Look for outbound HTTP transactions where a response appears before request bytes are logged, request duration is implausibly short, request body upload size is zero when a body was expected, or response metadata is inconsistent with the requested API operation. Correlate application logs with reverse-proxy, egress proxy, service mesh, packet capture, and destination server logs to identify mismatched request/response ordering. Investigate unexpected successful API responses, anomalous redirects, unusual headers, schema validation failures, cache entries populated from suspicious responses, or business events triggered by responses from untrusted or recently changed endpoints. If TLS is used correctly, prioritize investigation of malicious or compromised destination services and configured proxies; if plaintext HTTP is used, also investigate network-path manipulation.
What your security team should do
- Inventory all production, staging, CI, container, and serverless environments running Node.js 22, 24, or 26.
- Track official Node.js security advisories and package-maintainer updates for the fixed releases, then patch and redeploy affected runtimes.
- Prioritize internet-facing services, services that call untrusted third-party APIs, automation that downloads artifacts, and applications that make authorization or financial decisions from HTTP responses.
- Temporarily restrict outbound HTTP destinations and untrusted proxies for sensitive applications until patched.
- Add or strengthen application-level validation of response origin, schema, status handling, and cryptographic integrity where applicable.
- Search logs for anomalous outbound HTTP behavior, especially successful responses with missing request metadata, unusual timing, unexpected headers, or responses from recently added or untrusted endpoints.
- After patching, rebuild base images and redeploy workloads rather than only updating local development runtimes.
The record
A flaw in Node.js HTTP Agent can cause a client to accept as valid a response that is send before the client has sent the request. This vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js 26**.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Leap 16.0 | nodejs22 | 0 | 22.23.0-160000.1.1 |
| openSUSE:Tumbleweed | nodejs24 | 0 | 24.17.0-1.1 |
| openSUSE:Tumbleweed | nodejs26 | 0 | 26.3.1-1.1 |
Related vulnerabilities
- CVE-2026-48935 A flaw in Node.js Permission API can cause a file metadata to be modified even on a path… Also affects nodejs22
- CVE-2026-48618 A flaw in Node.js TLS hostname handling can cause Node.js unicode dot separator handling… Also affects nodejs22
- CVE-2026-48930 A flaw in Node.js TLS hostname handling can cause Embedded-nul hostnames can lead to… Also affects nodejs22
- CVE-2026-48615 A flaw in Node.js proxy tunnel error handling could expose proxy credentials in… Also affects nodejs22
- CVE-2026-48619 A flaw in Node.js HTTP/2 client allows a server to send an unlimited number of ORIGIN… Also affects nodejs22
- CVE-2026-48933 A flaw in Node.js WebCrypto implementation can crash the process if the input of… Also affects nodejs22
- CVE-2026-48928 A inconsistency in Node.js hostname matching can cause a trust-policy bypass in… Also affects nodejs22
- CVE-2026-48934 A flaw in Node.js TLS host verification can cause an attacker to bypass certification… Also affects nodejs22