Description
Axios is a promise based HTTP client for the browser and Node.js. When Axios prior to versions 0.30.2 and 1.12.0 runs on Node.js and is given a URL with the `data:` scheme, it does not perform HTTP. Instead, its Node http adapter decodes the entire payload into memory (`Buffer`/`Blob`) and returns a synthetic 200 response. This path ignores `maxContentLength` / `maxBodyLength` (which only protect HTTP responses), so an attacker can supply a very large `data:` URI and cause the process to allocate unbounded memory and crash (DoS), even if the caller requested `responseType: 'stream'`. Versions 0.30.2 and 1.12.0 contain a patch for the issue.
Problem types
CWE-770: Allocation of Resources Without Limits or Throttling
Product status
< 0.30.2
References
github.com/.../axios/security/advisories/GHSA-4hjh-wcwx-xvwj
github.com/axios/axios/pull/7011
github.com/axios/axios/pull/7034
github.com/...ommit/945435fc51467303768202250debb8d4ae892593
github.com/...ommit/a1b1d3f073a988601583a604f5f9f5d05a3d0b67
github.com/axios/axios/releases/tag/v0.30.2
github.com/axios/axios/releases/tag/v1.12.0