CVE-2024-3855
NoneCVSS
—
EPSS
0.4%
Published
Apr 16, 2024
CISA due date
—
Cloudanix analysis
A flaw in the browser's speed optimization code could allow attackers to read data they should not access during normal web browsing.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The JIT compiler performed incorrect optimizations on MSubstr operations, resulting in out-of-bounds memory reads during script execution.
Why it matters to the business
Attackers could potentially read sensitive data from browser memory or cause crashes, increasing risk of information disclosure in affected browser sessions across user devices.
How an attack unfolds
An attacker delivers malicious JavaScript that triggers the misoptimized MSubstr path in the JIT, allowing controlled out-of-bounds reads to leak memory contents for further exploitation or data theft.
How to fix it
Upgrade Firefox to version 125 or later to receive the corrected JIT handling for MSubstr operations.
How to confirm the fix worked
Confirm browser version is 125 or higher; test with known triggering JavaScript patterns in a controlled environment to verify absence of out-of-bounds behavior.
Typical attack path
- Host a webpage containing specially crafted JavaScript targeting MSubstr operations
- Victim browser loads and JIT-compiles the script
- JIT produces incorrect code leading to out-of-bounds read
- Attacker exfiltrates leaked memory contents via script-controlled channels
How to detect it
Review browser process crash logs and memory dumps for patterns consistent with MSubstr-related out-of-bounds access; correlate with unusual JavaScript execution artifacts in web activity logs.
What your security team should do
- Prioritize browser updates to Firefox 125+ across all managed endpoints
- Monitor for new exploit maturity indicators given the memory corruption nature
- Enforce automatic update policies to reduce exposure window
The record
In certain cases the JIT incorrectly optimized MSubstr operations, which led to out-of-bounds reads. This vulnerability affects Firefox < 125.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | firefox | 0 | 125.0.2+build1-0ubuntu0.20.04.2 |
| Ubuntu:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:22.04:LTS | mozjs102 | 0 | No fix |
| Ubuntu:22.04:LTS | mozjs78 | 0 | No fix |
| Ubuntu:22.04:LTS | mozjs91 | 0 | No fix |
| Ubuntu:24.04:LTS | mozjs102 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | mozjs78 | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | mozjs102 | 0 | No fix |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 125.0.2-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2025-0243 Memory safety bugs present in Firefox 133, Thunderbird 133, Firefox ESR 128.5, and… Also affects mozjs38
- CVE-2025-0237 The WebChannel API, which is used to transport various information across processes, did… Also affects mozjs38
- CVE-2025-0238 Assuming a controlled failed memory allocation, an attacker could have caused a… Also affects mozjs38
- CVE-2025-0240 Parsing a JavaScript module as JSON could, under some circumstances, cause… Also affects mozjs38
- CVE-2025-0239 When using Alt-Svc, ALPN did not properly validate certificates when the original server… Also affects mozjs38
- CVE-2025-0241 When segmenting specially crafted text, segmentation would corrupt memory leading to a… Also affects mozjs38
- CVE-2025-0242 Memory safety bugs present in Firefox 133, Thunderbird 133, Firefox ESR 115.18, Firefox… Also affects mozjs38
- CVE-2024-11704 A double-free issue could have occurred in `sec_pkcs7_decoder_start_decrypt()` when… Also affects mozjs38