Overview
The CVE-2025-58754 vulnerability pertains to Axios, a widespread promise-based HTTP client for both the browser and Node.js. This vulnerability has a significant impact as it can potentially cause the system to allocate an excessive amount of memory resulting in a crash (DoS) and possibly leading to system compromise or data leakage. Therefore, it is crucial for users and organizations utilizing Axios prior to version 1.11.0 to acknowledge and address this issue promptly.
Vulnerability Summary
CVE ID: CVE-2025-58754
Severity: High (7.5 CVSS Score)
Attack Vector: Network
Privileges Required: None
User Interaction: None
Impact: The successful exploitation can cause the system to allocate unbounded memory and crash (Denial of Service), potentially leading to system compromise or data leakage.
Affected Products
A new way to communicate
Ameeba Chat is built on encrypted identity, not personal profiles.
Message, call, share files, and coordinate with identities kept separate.
- • Encrypted identity
- • Ameeba Chat authenticates access
- • Aliases and categories
- • End-to-end encrypted chat, calls, and files
- • Secure notes for sensitive information
Private communication, rethought.
Product | Affected Versions
Axios | Prior to 1.11.0
How the Exploit Works
In Axios prior to version 1.11.0 running on Node.js, if a `data:` scheme URL is given, the HTTP operation is not performed. Instead, the Node http adapter decodes the entire payload into memory (`Buffer`/`Blob`) and returns a synthetic 200 response. This process bypasses `maxContentLength` / `maxBodyLength` which typically protect HTTP responses. As a result, an attacker can supply a large `data:` URI which prompts the process to allocate excessive memory, leading to a crash (DoS), even if the caller requested `responseType: ‘stream’`.
Conceptual Example Code
The following is a conceptual example of how the vulnerability might be exploited using a large `data:` URI.
const axios = require('axios');
let largeDataUri = 'data:text/plain;base64,' + 'A'.repeat(1e6);
axios.get(largeDataUri)
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
In this example, a large `data:` URI is created and used in an axios GET request. This would cause the axios process to allocate excessive memory, potentially leading to a crash (DoS).
