CVE-2026-67318
PoC moderateaxios Fails to Enforce maxBodyLength on HTTP/2 Streamed Request Bodies
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.
| axios | >= 1.13.0 (Node.js HTTP adapter; only when httpVersion: 2 is used with streamed request bodies and a finite maxBodyLength) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.