CVE-2024-9394
NoneCVSS
—
EPSS
0.5%
Published
Oct 1, 2024
CISA due date
—
Cloudanix analysis
A flaw in older browser versions lets attackers potentially steal private data from other websites when users view specially made content.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Application
- Class
- XSS
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
An attacker can execute arbitrary JavaScript under the resource://devtools origin via a specially crafted multipart response, enabling access to cross-origin JSON content with full cross-origin access possible on Android clients due to limited Site Isolation enforcement.
Why it matters to the business
Attackers could steal sensitive cross-origin data from users of affected browser versions, increasing risk of credential theft or data exposure in environments relying on these clients, with urgency heightened by mentions in espionage and financially motivated campaigns.
How an attack unfolds
An attacker delivers a malicious multipart response that exploits the flaw to run JavaScript in the privileged devtools origin; on Android this bypasses same-site restrictions allowing full cross-origin JSON reads, consistent with observed 2024 zero-day exploitation patterns by espionage and financial actors.
How to fix it
Upgrade Firefox to version 131 or later, Firefox ESR to 128.3 or later and 115.16 or later, Thunderbird to 128.3 or later and 131 or later; apply patches immediately given the published date and threat actor context.
How to confirm the fix worked
Verify client versions meet or exceed the listed fixed releases and confirm the devtools origin no longer processes crafted multipart responses by testing with controlled payloads in isolated environments.
Typical attack path
- Craft and host a malicious multipart HTTP response targeting the devtools origin
- Trick a user into triggering the response in an affected Firefox or Thunderbird client
- Execute injected JavaScript to access and exfiltrate cross-origin JSON data
- Leverage obtained data for further attacks such as session hijacking or espionage
How to detect it
Search browser process logs, network captures, and security event logs for unexpected JavaScript execution or data access originating from the devtools resource URI, cross-referencing with known campaign indicators from espionage actors.
- resource://devtools
- multipart response with unexpected script execution
- cross-origin JSON fetch from devtools origin
What your security team should do
- Prioritize patching all desktop and Android clients within the CISA-style remediation window
- Monitor threat intelligence feeds for continued mentions of the listed 2024 exploitation campaigns
- Enforce browser auto-update policies across the organization
- Review logging for anomalous devtools origin activity post-patch
The record
An attacker could, via a specially crafted multipart response, execute arbitrary JavaScript under the `resource://devtools` origin. This could allow them to access cross-origin JSON content. This access is limited to "same site" documents by the Site Isolation feature on desktop clients, but full cross-origin access is possible on Android versions. This vulnerability affects Firefox < 131, Firefox ESR < 128.3, Firefox ESR < 115.16, Thunderbird < 128.3, and Thunderbird < 131.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 128.3.0-1.el8_10.alma.1 |
| AlmaLinux:8 | thunderbird | 0 | 128.3.0-1.el8_10.alma.1 |
| AlmaLinux:9 | firefox | 0 | 128.3.0-1.el9_4.alma.1 |
| AlmaLinux:9 | firefox-x11 | 0 | 128.3.0-1.el9_4.alma.1 |
| AlmaLinux:9 | thunderbird | 0 | 128.3.0-1.el9_4.alma.1 |
| Chainguard | firefox | 0 | 136.0.2-r0 |
| Chainguard | firefox-esr | 0 | 128.3.0-r0 |
| Debian:11 | firefox-esr | 0 | No fix |
| Debian:11 | firefox-esr | 0 | 128.3.0esr-1~deb11u2 |
| Debian:11 | thunderbird | 0 | No fix |
| Debian:11 | thunderbird | 0 | 1:115.16.0esr-1~deb11u1 |
| Debian:12 | firefox-esr | 0 | No fix |
| Debian:12 | firefox-esr | 0 | 128.3.0esr-1~deb12u1 |
| Debian:12 | thunderbird | 0 | No fix |
| Debian:12 | thunderbird | 0 | 1:115.16.0esr-1~deb12u1 |
| Debian:13 | firefox-esr | 0 | No fix |
| Debian:13 | thunderbird | 0 | No fix |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_10 |
| Red Hat:enterprise_linux:9::appstream | firefox | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-x11 | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | thunderbird | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el9_4 |
| Red Hat:rhel_aus:8.2::appstream | firefox | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_2 |
| Red Hat:rhel_aus:8.4::appstream | firefox | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_aus:8.6::appstream | firefox | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | thunderbird | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.4::appstream | firefox | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_e4s:8.6::appstream | firefox | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | thunderbird | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_e4s:9.0::appstream | firefox | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | thunderbird | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el9_0 |
| Red Hat:rhel_els:7 | firefox | 0 | 0:128.3.0-1.el7_9 |
| Red Hat:rhel_els:7 | firefox-debuginfo | 0 | 0:128.3.0-1.el7_9 |
| Red Hat:rhel_eus:8.8::appstream | firefox | 0 | 0:128.3.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird | 0 | 0:128.3.1-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird-debuginfo | 0 | 0:128.3.1-1.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | thunderbird-debugsource | 0 | 0:128.3.1-1.el8_8 |
| Red Hat:rhel_eus:9.2::appstream | firefox | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-x11 | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el9_2 |
| Red Hat:rhel_tus:8.4::appstream | firefox | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_4 |
| Red Hat:rhel_tus:8.6::appstream | firefox | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | firefox-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | firefox-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | thunderbird | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | thunderbird-debuginfo | 0 | 0:128.3.0-1.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | thunderbird-debugsource | 0 | 0:128.3.0-1.el8_6 |
| Rocky Linux:8 | firefox | 0 | 0:128.3.0-1.el8_10 |
| Rocky Linux:8 | thunderbird | 0 | 0:128.3.0-1.el8_10 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 128.3.0-112.228.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 128.3.1-112.231.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 128.3.0-112.228.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 128.3.1-112.231.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 128.3.0-112.228.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 128.3.1-112.231.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP5 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | firefox | 0 | 131.0+build1.1-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.18.0+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.18.0+build1-0ubuntu0.22.04.1 |
| Ubuntu:24.04:LTS | mozjs102 | 0 | No fix |
| Ubuntu:24.04:LTS | mozjs115 | 0 | No fix |
| Ubuntu:24.10 | mozjs115 | 0 | No fix |
| Ubuntu:25.04 | mozjs115 | 0 | No fix |
| Ubuntu:25.10 | mozjs115 | 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 |
| Wolfi | firefox | 0 | 136.0.2-r0 |
| openSUSE:Leap 15.5 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| openSUSE:Leap 15.5 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| openSUSE:Leap 15.5 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| openSUSE:Leap 15.6 | MozillaFirefox | 0 | 128.3.0-150200.152.152.1 |
| openSUSE:Leap 15.6 | MozillaFirefox | 0 | 128.3.1-150200.152.155.1 |
| openSUSE:Leap 15.6 | MozillaThunderbird | 0 | 128.3.0-150200.8.182.1 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 131.0-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 128.3.1-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
| openSUSE:Tumbleweed | mozjs128 | 0 | 128.3.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