CVE-2023-4578
Medium · 6.5CVSS
6.5
EPSS
0.6%
Published
Sep 11, 2023
CISA due date
—
Cloudanix analysis
A problem in web browsers and email programs could let attackers make the software crash when users visit certain web pages or open messages.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Mishandled out-of-memory condition during regex syntax checking in the JavaScript engine allows an allocation failure to be treated as a syntax error, resulting in memory corruption.
Why it matters to the business
Attackers can trigger browser or email client crashes, causing denial of service for users and potential disruption to web-dependent workflows; the issue has been public for over three years with low but persistent exploitability signals.
How an attack unfolds
An attacker crafts a JavaScript regular expression that forces the CheckRegExpSyntax path into an out-of-memory state; the subsequent exception is incorrectly converted, leading to a crash that an attacker can use for denial of service.
How to fix it
Upgrade Mozilla Firefox to version 117 or later, Firefox ESR to 115.2 or later, and Thunderbird to 115.2 or later. Apply updates through the product's built-in updater or package manager as soon as possible.
How to confirm the fix worked
Confirm the installed version meets or exceeds the fixed releases listed above; retest any internal JavaScript workloads that exercise regular-expression syntax checking to ensure no crashes occur under memory pressure.
Typical attack path
- Deliver malicious JavaScript or HTML containing a specially crafted regular expression via a web page or email
- Trigger JS::CheckRegExpSyntax in the affected JavaScript engine
- Force an allocation failure inside the error-handling path
- Cause the OOM exception to be mishandled as a syntax error, resulting in a crash
How to detect it
Review application crash logs and telemetry for unexpected terminations originating from the JavaScript engine during regular-expression processing; correlate with inbound web or email traffic containing unusual regex patterns.
What your security team should do
- Prioritize patching all Firefox, ESR, and Thunderbird instances within the next 30 days given the public disclosure age and availability impact
- Enable automatic updates for Mozilla products across the environment
- Monitor crash reports for regex-related JavaScript engine faults as a temporary detection measure
The record
When calling `JS::CheckRegExpSyntax` a Syntax Error could have been set which would end in calling `convertToRuntimeErrorAndClear`. A path in the function could attempt to allocate memory when none is available which would have caused a newly created Out of Memory exception to be mishandled as a Syntax Error. This vulnerability affects Firefox < 117, Firefox ESR < 115.2, and Thunderbird < 115.2.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 102.15.0-1.el8_8.alma |
| AlmaLinux:8 | thunderbird | 0 | 102.15.0-1.el8_8.alma |
| AlmaLinux:9 | firefox | 0 | 102.15.0-1.el9_2.alma |
| AlmaLinux:9 | firefox-x11 | 0 | 102.15.0-1.el9_2.alma |
| AlmaLinux:9 | thunderbird | 0 | 102.15.0-1.el9_2.alma |
| Debian:13 | firefox-esr | 0 | 115.2.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:115.2.0-1 |
| Mageia:8 | firefox | 0 | 102.15.1-1.mga8 |
| Mageia:8 | firefox-l10n | 0 | 102.15.1-1.mga8 |
| Mageia:8 | nss | 0 | 3.93.0-1.mga8 |
| Mageia:8 | rootcerts | 0 | 20230720.00-1.mga8 |
| Mageia:8 | thunderbird | 0 | 102.15.1-1.mga8 |
| Mageia:8 | thunderbird-l10n | 0 | 102.15.1-1.mga8 |
| Mageia:9 | firefox | 0 | 115.2.1-1.mga9 |
| Mageia:9 | firefox-l10n | 0 | 115.2.1-1.mga9 |
| Mageia:9 | nss | 0 | 3.93.0-1.mga9 |
| Mageia:9 | rootcerts | 0 | 20230720.00-1.mga9 |
| Mageia:9 | thunderbird | 0 | 115.2.2-1.mga9 |
| Mageia:9 | thunderbird-l10n | 0 | 115.2.2-1.mga9 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:102.15.0-1.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_8 |
| Red Hat:enterprise_linux:9::appstream | firefox | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | firefox-x11 | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | thunderbird | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el9_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_aus:8.4::appstream | firefox | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.1::appstream | firefox | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_1 |
| Red Hat:rhel_e4s:8.2::appstream | firefox | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_e4s:8.4::appstream | firefox | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_eus:8.6::appstream | firefox | 0 | 0:102.15.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_6 |
| Red Hat:rhel_eus:9.0::appstream | firefox | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el9_0 |
| Red Hat:rhel_tus:8.2::appstream | firefox | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_2 |
| Red Hat:rhel_tus:8.4::appstream | firefox | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debuginfo | 0 | 0:102.15.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debugsource | 0 | 0:102.15.0-1.el8_4 |
| Rocky Linux:8 | firefox | 0 | 0:102.15.0-1.el8_8 |
| Rocky Linux:8 | thunderbird | 0 | 0:102.15.0-1.el8_8 |
| SUSE:Enterprise Storage 7 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 115.2.0-150000.150.100.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 115.2.0-112.176.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 115.2.0-150000.150.100.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 115.2.0-112.176.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 115.2.0-150000.150.100.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 115.2.0-112.176.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP4 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP5 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | firefox | 0 | 117.0+build2-0ubuntu0.20.04.1 |
| Ubuntu:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:20.04:LTS | thunderbird | 0 | 1:115.3.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.3.1+build1-0ubuntu0.22.04.2 |
| 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.4 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| openSUSE:Leap 15.4 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| openSUSE:Leap 15.5 | MozillaFirefox | 0 | 115.2.0-150200.152.102.1 |
| openSUSE:Leap 15.5 | MozillaThunderbird | 0 | 115.2.2-150200.8.130.1 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 117.0-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 115.2.0-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