ZeroHour

CVE-2026-67318

PoC moderate

axios Fails to Enforce maxBodyLength on HTTP/2 Streamed Request Bodies

CVSS 4.0
6.3 medium
EPSS
<1%p36
Published
()
Modified
AI analysis

axios versions 1.13.0 and later, when using its Node.js HTTP adapter to send requests with httpVersion: 2, fail to enforce the configured maxBodyLength limit on streamed request bodies, because Node's HTTP/2 request API ignores the maxBodyLength option and axios's byte-counting stream wrapper only runs when maxRedirects is set to 0. The condition is triggered when an attacker controls the stream passed to axios in such an HTTP/2 request, causing the application to transmit outbound data exceeding its configured finite limit. The impact is uncontrolled resource consumption and policy bypass (excess egress bandwidth, upstream quota consumption, limited availability) rather than code execution, credential disclosure, or control of the request destination. Only Node.js applications running axios >= 1.13.0 with the HTTP/2 adapter, a finite maxBodyLength, and streamed bodies are affected; calls using the default maxBodyLength: -1 and the browser adapter are unaffected. No in-the-wild exploitation is known: EPSS is low (0.4%, 36th percentile), the issue is not in CISA KEV, and the flaw is documented in a public GitHub advisory with one referenced PoC.

What to do: Upgrade axios to the patched release once available and follow the mitigation details in the GitHub advisory GHSA-mwf2-3pr3-8698. As interim mitigations, avoid using httpVersion: 2 with streamed request bodies, keep the default maxBodyLength: -1, or set maxRedirects: 0 (which re-enables axios's byte-counting wrapper) when a finite limit must be enforced. Audit Node.js code paths that pass attacker-controlled streams to axios over HTTP/2 with a finite maxBodyLength configured.

Affected
axios>= 1.13.0 (Node.js HTTP adapter; only when httpVersion: 2 is used with streamed request bodies and a finite maxBodyLength)
Estimated exposure
moderatelikely on the order of thousands of Node.js applications (1,000-10,000, possibly fewer) — axios is one of the most-installed packages in the npm ecosystem (tens of millions of weekly downloads), but the flaw requires the uncommon Node.js HTTP/2 adapter with a streamed body, a non-default finite maxBodyLength, and…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

axios versions >=1.13.0 (Node.js HTTP adapter) fail to enforce the configured maxBodyLength limit on streamed request bodies when requests are sent with httpVersion: 2. Because Node's HTTP/2 request API does not honor the maxBodyLength option and axios's byte-counting stream wrapper is gated on maxRedirects === 0, an attacker who controls a stream passed to axios can cause the application to transmit outbound data exceeding the configured finite maxBodyLength. Impact is limited to resource consumption and policy bypass (excess egress, upstream quota consumption, limited availability); it does not enable code execution, credential disclosure, or request-destination control. Calls using the default maxBodyLength: -1 and browser adapters are not affected.

Vendors
axios
Products
axios
Weakness
CWE-400
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.