ZeroHour

CVE-2026-67312

PoC mass

Stack Exhaustion DoS in axios formDataToJSON (formToJSON)

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

axios, a widely used JavaScript HTTP client library, contains an uncontrolled recursion flaw (CWE-400) in its formDataToJSON implementation, reachable through axios.formToJSON() and internally whenever a request serializes FormData with a JSON Content-Type. If an application passes attacker-controlled FormData field names, a name built from thousands of nested bracket-delimited segments drives the buildPath() helper into unbounded recursion, exhausting the JavaScript call stack with a 'RangeError: Maximum call stack size exceeded'. An attacker gains denial of service: the affected request fails, and in applications lacking appropriate error handling the whole Node.js or browser process can terminate, letting the attacker crash the service repeatedly (CVSS 4.0 scores this 6.3, medium, with availability-only impact). Anyone running axios 0.28.0 up to but not including 0.33.0, or 1.0.0 up to but not including 1.18.0, in code paths that convert untrusted FormData to JSON is affected. A public proof of concept exists via the upstream advisory (GHSA-pmv8-rq9r-6j72), but there is no confirmed in-the-wild exploitation so far: EPSS is 0.4% (36th percentile) and the issue is not on CISA KEV.

What to do: Upgrade axios to 1.18.0 or later, or at least 0.33.0 on the legacy 0.x branch. Until patched, validate or length-limit attacker-controlled FormData field names, avoid axios.formToJSON()/JSON-serialized FormData with untrusted field names, and wrap affected handling in try/catch so a RangeError cannot terminate the process. Audit dependency manifests and server logs for 'Maximum call stack size exceeded' errors to spot past exploitation attempts.

Affected
axios>= 0.28.0 and < 0.33.0 (legacy 0.x line)
axios>= 1.0.0 and < 1.18.0 (1.x line)
Estimated exposure
mass1M+ downstream applications (axios draws tens of millions of weekly npm downloads); the subset actually reachable by this flaw is unknown — axios is one of the most heavily downloaded JavaScript packages on npm and ships in countless Node.js and browser bundles, but only deployments that serialize attacker-controlled FormData field names via formDataToJSON/formToJSON with a…

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

Description

axios versions from 0.28.0 before 0.33.0 and from 1.0.0 before 1.18.0 contain uncontrolled recursion in formDataToJSON (exposed as axios.formToJSON() and used internally when serializing FormData with Content-Type: application/json). When an application passes attacker-controlled FormData field names, a field name with thousands of nested bracket-delimited segments causes unbounded recursion in buildPath(), exhausting the JavaScript call stack (RangeError: Maximum call stack size exceeded) and causing denial of service for that request, or process termination in applications without appropriate error handling.

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:N/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.