Overview
An alarming vulnerability, CVE-2025-4918, has been detected in certain versions of Firefox, Firefox ESR, and Thunderbird, affecting their JavaScript `Promise` object. This critical issue permits an attacker to perform an out-of-bounds read or write operation, resulting in potential system compromise and data leakage. Given the widespread use of the affected software, this vulnerability is of significant concern.
Vulnerability Summary
CVE ID: CVE-2025-4918
Severity: High (CVSS: 7.5)
Attack Vector: Network
Privileges Required: None
User Interaction: Required
Impact: System compromise and potential data leakage
Affected Products
Share secrets securely
Ameeba is private infrastructure for communication and sensitive work built on encrypted identity instead of exposed corporate identity systems.
Passwords, credentials, confidential files, screenshots, internal discussions, sensitive AI context, and private coordination should not become exposed across ordinary communication platforms.
- • Encrypted identity
- • Private Spaces for organizations and teams
- • End-to-end encrypted chat, calls, files, and notes
- • Sensitive AI work and protected collaboration
- • Built for information that cannot leak
Our mission is to secure human work alongside AI.
Product | Affected Versions
Firefox | < 138.0.4 Firefox ESR | < 128.10.1 Firefox ESR | < 115.23.1 Thunderbird | < 128.10.2 Thunderbird | < 138.0.2 How the Exploit Works
The exploit takes advantage of a flaw in the JavaScript `Promise` object present in the affected browsers. An attacker can craft a malicious web page or script that, when interacted with by the victim, allows the attacker to perform out-of-bounds read or write operations. This can lead to unauthorized access to data, system instability, or even complete system compromise.
Conceptual Example Code
Consider the following conceptual example, which illustrates a possible exploitation scenario:
let promise = new Promise((resolve, reject) => {
// Malicious code here
let array = new Array(-1);
resolve(array);
});
promise.then((value) => {
// Out-of-bounds read/write operation here
value[123456] = "exploit";
});
In this conceptual example, a `Promise` is created with a negative array size, which is an invalid operation. The attacker then performs an out-of-bounds write operation in the `then` method, potentially leading to undefined behavior, system instability, or a compromise.
