CVE-2024-3854
High · 8.8CVSS
8.8
EPSS
0.7%
Published
Apr 16, 2024
CISA due date
—
Cloudanix analysis
A flaw in how the browser optimizes certain code could allow attackers to access or alter information in memory they shouldn't reach, risking user data or device security.
- 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 just-in-time compiler incorrectly optimizes certain switch statement patterns, resulting in generated code that performs out-of-bounds memory reads.
Why it matters to the business
Attackers could exploit this to read sensitive data or execute arbitrary code in the context of the browser or email client, potentially leading to data breaches or system compromise for users.
How an attack unfolds
An attacker delivers a specially crafted webpage or email containing JavaScript that triggers the flawed switch optimization in the JIT compiler, causing an out-of-bounds read that can be leveraged for further exploitation such as information disclosure or code execution.
How to fix it
Update Firefox to version 125 or later, Firefox ESR to 115.10 or later, and Thunderbird to 115.10 or later.
How to confirm the fix worked
Verify the application version is at or above the fixed versions; test with proof-of-concept code if available.
Typical attack path
- Craft malicious JavaScript exploiting switch patterns
- Deliver via web or email
- Trigger JIT compilation
- Exploit OOB read for RCE or info leak
How to detect it
Look for unusual memory access patterns or crashes in browser processes related to JavaScript execution; monitor logs for JIT-related errors.
What your security team should do
- Prioritize updating affected Mozilla products immediately
- Monitor for public exploit availability
- Educate users on keeping software updated
The record
In some code patterns the JIT incorrectly optimized switch statements and generated code with out-of-bounds-reads. This vulnerability affects Firefox < 125, Firefox ESR < 115.10, and Thunderbird < 115.10.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 115.10.0-1.el8_9.alma.1 |
| AlmaLinux:9 | firefox | 0 | 115.10.0-1.el9_3.alma.1 |
| AlmaLinux:9 | firefox-x11 | 0 | 115.10.0-1.el9_3.alma.1 |
| Chainguard | firefox-esr | 0 | 115.10.0-r0 |
| Debian:10 | firefox-esr | 0 | 115.10.0esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:115.10.1-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 115.10.0esr-1~deb11u1 |
| Debian:11 | thunderbird | 0 | 1:115.10.1-1~deb11u1 |
| Debian:12 | firefox-esr | 0 | 115.10.0esr-1~deb12u1 |
| Debian:12 | thunderbird | 0 | 1:115.10.1-1~deb12u1 |
| Debian:13 | firefox-esr | 0 | 115.10.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:115.10.1-1 |
| Mageia:9 | firefox | 0 | 115.10.0-1.mga9 |
| Mageia:9 | firefox-l10n | 0 | 115.10.0-1.mga9 |
| Mageia:9 | thunderbird | 0 | 115.10.1-1.mga9 |
| Mageia:9 | thunderbird-l10n | 0 | 115.10.1-1.mga9 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:115.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:115.10.0-2.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:115.10.0-1.el8_9 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_9 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_9 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:115.10.0-2.el8_9 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_9 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_9 |
| Red Hat:enterprise_linux:9::appstream | firefox | 0 | 0:115.10.0-1.el9_3 |
| Red Hat:enterprise_linux:9::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el9_3 |
| Red Hat:enterprise_linux:9::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el9_3 |
| Red Hat:enterprise_linux:9::appstream | firefox-x11 | 0 | 0:115.10.0-1.el9_3 |
| Red Hat:enterprise_linux:9::appstream | thunderbird | 0 | 0:115.10.0-2.el9_3 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el9_3 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el9_3 |
| Red Hat:rhel_aus:8.2::appstream | firefox | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_aus:8.4::appstream | firefox | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_e4s:8.2::appstream | firefox | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.4::appstream | firefox | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_eus:8.6::appstream | firefox | 0 | 0:115.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird | 0 | 0:115.10.0-2.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_6 |
| Red Hat:rhel_eus:8.8::appstream | firefox | 0 | 0:115.10.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird | 0 | 0:115.10.0-2.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_8 |
| Red Hat:rhel_eus:9.0::appstream | firefox | 0 | 0:115.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird | 0 | 0:115.10.0-2.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el9_0 |
| Red Hat:rhel_eus:9.2::appstream | firefox | 0 | 0:115.10.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-x11 | 0 | 0:115.10.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird | 0 | 0:115.10.0-2.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el9_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_2 |
| Red Hat:rhel_tus:8.4::appstream | firefox | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debuginfo | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debugsource | 0 | 0:115.10.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debuginfo | 0 | 0:115.10.0-2.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debugsource | 0 | 0:115.10.0-2.el8_4 |
| Rocky Linux:8 | firefox | 0 | 0:115.10.0-1.el8_9 |
| Rocky Linux:9 | firefox | 0 | 0:115.10.0-1.el9_3 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | MozillaThunderbird | 0 | 115.10.1-150200.8.157.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 115.11.0-112.212.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 115.10.0-112.209.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 115.11.0-112.212.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 115.10.0-112.209.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 115.11.0-112.212.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 115.10.0-112.209.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP5 | MozillaThunderbird | 0 | 115.10.1-150200.8.157.1 |
| 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:20.04:LTS | thunderbird | 0 | 1:115.10.1+build1-0ubuntu0.20.04.1 |
| 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:22.04:LTS | thunderbird | 0 | 1:115.10.1+build1-0ubuntu0.22.04.1 |
| Ubuntu:23.10 | thunderbird | 0 | 1:115.10.1+build1-0ubuntu0.23.10.1 |
| 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:Leap 15.5 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| openSUSE:Leap 15.5 | MozillaFirefox | 0 | 115.10.0-150200.152.134.1 |
| openSUSE:Leap 15.5 | MozillaThunderbird | 0 | 115.10.1-150200.8.157.1 |
| openSUSE:Leap 15.6 | MozillaFirefox | 0 | 115.11.0-150200.152.137.2 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 125.0.2-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 115.10.1-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2025-14331 Same-origin policy bypass in the Request Handling component. Also affects firefox
- CVE-2025-14325 JIT miscompilation in the JavaScript Engine: JIT component. Also affects firefox
- CVE-2025-14330 JIT miscompilation in the JavaScript Engine: JIT component. Also affects firefox
- CVE-2025-14333 Memory safety bugs present in Firefox ESR 140.5, Thunderbird ESR 140.5, Firefox 145 and… Also affects firefox
- CVE-2025-14328 Privilege escalation in the Netmonitor component. Also affects firefox
- CVE-2025-14329 Privilege escalation in the Netmonitor component. Also affects firefox
- CVE-2025-14323 Privilege escalation in the DOM: Notifications component. Also affects firefox
- CVE-2025-14321 Use-after-free in the WebRTC: Signaling component. Also affects firefox