CVE-2024-4774
NoneCVSS
—
EPSS
0.4%
Published
May 14, 2024
CISA due date
—
Cloudanix analysis
A coding mistake in how memory is handled could let attackers interfere with the program if the software is not updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Theoretical
- Impact
- Other
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Bypassing move semantics in ShmemCharMapHashEntry leads to undefined behavior that can manifest as memory corruption within the affected component.
Why it matters to the business
Unpatched systems face elevated risk of instability or remote compromise, potentially disrupting operations and requiring emergency patching across deployed instances.
How an attack unfolds
An attacker crafts input that triggers the flawed code path, causing the program to enter an undefined state that an adversary can leverage to corrupt memory and achieve arbitrary code execution.
How to fix it
Update to the corrected release that restores proper move semantics for the affected data member.
How to confirm the fix worked
Confirm the installed version is newer than the vulnerable range and review source or binary for the corrected move operation on the data member.
Typical attack path
- Deliver malicious content to the target process
- Trigger ShmemCharMapHashEntry execution via the crafted input
- Exploit resulting undefined behavior to corrupt memory
- Escalate to code execution within the process context
How to detect it
Inspect process crash logs and memory error reports for signs of corruption originating from the affected hash entry code path.
What your security team should do
- Prioritize deployment of the fixed version to all instances
- Monitor for memory-related crashes that may indicate attempted exploitation
- Review application update policies to reduce time-to-patch for memory safety issues
The record
The `ShmemCharMapHashEntry()` code was susceptible to potentially undefined behavior by bypassing the move semantics for one of its data members. This vulnerability affects Firefox < 126.
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 | 126.0+build2-0ubuntu0.20.04.1 |
| 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 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 126.0-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