CVE-2024-7524
NoneCVSS
—
EPSS
0.5%
Published
Aug 6, 2024
CISA due date
—
Cloudanix analysis
A browser flaw lets attackers slip harmful code past website protections that were supposed to stop it.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Application
- Class
- XSS
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
DOM Clobbering on web-compatibility shims bypasses Content Security Policy strict-dynamic mode, enabling cross-site scripting in affected Firefox releases.
Why it matters to the business
Attackers can run unauthorized code in users' browsers on protected sites, risking data theft, session hijacking, and loss of user trust.
How an attack unfolds
An attacker locates a site using strict-dynamic CSP, injects an HTML element that clobbers the tracking-script shims added by Enhanced Tracking Protection, and executes arbitrary scripts despite the policy.
How to fix it
Upgrade Firefox to version 129 or later, Firefox ESR to 115.14 or later, and Firefox ESR to 128.1 or later.
How to confirm the fix worked
Verify installed browser versions against the fixed releases and confirm that strict-dynamic CSP pages reject injected elements that previously allowed script execution.
Typical attack path
- Locate a target site enforcing Content Security Policy in strict-dynamic mode
- Inject a crafted HTML element that collides with shim object names
- Trigger DOM Clobbering to replace shim references
- Bypass CSP restrictions and execute attacker-controlled script
How to detect it
Review browser console logs and web server access logs on strict-dynamic CSP pages for unexpected script sources or failed CSP violations that coincide with element injection patterns.
What your security team should do
- Prioritize browser updates across all endpoints to the versions listed in remediation guidance
- Audit internal web applications for strict-dynamic CSP usage and test for similar clobbering vectors
- Enable centralized browser update enforcement and logging of script injection attempts
The record
Firefox adds web-compatibility shims in place of some tracking scripts blocked by Enhanced Tracking Protection. On a site protected by Content Security Policy in "strict-dynamic" mode, an attacker able to inject an HTML element could have used a DOM Clobbering attack on some of the shims and achieved XSS, bypassing the CSP strict-dynamic protection. This vulnerability affects Firefox < 129, Firefox ESR < 115.14, and Firefox ESR < 128.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 115.14.0-2.el8_10.alma.1 |
| AlmaLinux:9 | firefox | 0 | 115.14.0-2.el9_4.alma.1 |
| AlmaLinux:9 | firefox-x11 | 0 | 115.14.0-2.el9_4.alma.1 |
| Chainguard | firefox | 0 | 129.0.2-r0 |
| Chainguard | firefox-esr | 0 | 128.1.0-r0 |
| Debian:11 | firefox-esr | 0 | 115.14.0esr-1~deb11u1 |
| Debian:12 | firefox-esr | 0 | 115.14.0esr-1~deb12u1 |
| Debian:13 | firefox-esr | 0 | 115.14.0esr-1 |
| Mageia:9 | firefox | 0 | 128.3.0-1.mga9 |
| Mageia:9 | firefox | 0 | 128.3.1-3.mga9 |
| Mageia:9 | firefox-l10n | 0 | 128.3.0-1.mga9 |
| Mageia:9 | nss | 0 | 3.105.0-1.mga9 |
| Mageia:9 | rootcerts | 0 | 20240823.00-1.mga9 |
| Mageia:9 | thunderbird | 0 | 128.3.0-1.mga9 |
| Mageia:9 | thunderbird-l10n | 0 | 128.3.0-1.mga9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:115.14.0-2.el8_10 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_10 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_10 |
| Red Hat:enterprise_linux:9::appstream | firefox | 0 | 0:115.14.0-2.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el9_4 |
| Red Hat:enterprise_linux:9::appstream | firefox-x11 | 0 | 0:115.14.0-2.el9_4 |
| Red Hat:rhel_aus:8.2::appstream | firefox | 0 | 0:115.14.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_2 |
| Red Hat:rhel_aus:8.4::appstream | firefox | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_aus:8.4::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_aus:8.6::appstream | firefox | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_aus:8.6::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_e4s:8.4::appstream | firefox | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_e4s:8.4::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_e4s:8.6::appstream | firefox | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_e4s:8.6::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_e4s:9.0::appstream | firefox | 0 | 0:115.14.0-2.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el9_0 |
| Red Hat:rhel_e4s:9.0::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el9_0 |
| Red Hat:rhel_els:7 | firefox | 0 | 0:115.14.0-2.el7_9 |
| Red Hat:rhel_els:7 | firefox-debuginfo | 0 | 0:115.14.0-2.el7_9 |
| Red Hat:rhel_eus:8.8::appstream | firefox | 0 | 0:115.14.0-2.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_8 |
| Red Hat:rhel_eus:8.8::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_8 |
| Red Hat:rhel_eus:9.2::appstream | firefox | 0 | 0:115.14.0-2.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el9_2 |
| Red Hat:rhel_eus:9.2::appstream | firefox-x11 | 0 | 0:115.14.0-2.el9_2 |
| Red Hat:rhel_tus:8.4::appstream | firefox | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_tus:8.4::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_4 |
| Red Hat:rhel_tus:8.6::appstream | firefox | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | firefox-debuginfo | 0 | 0:115.14.0-2.el8_6 |
| Red Hat:rhel_tus:8.6::appstream | firefox-debugsource | 0 | 0:115.14.0-2.el8_6 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 128.1.0-112.221.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox-branding-SLE | 0 | 128-35.15.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 128.1.0-112.221.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox-branding-SLE | 0 | 128-35.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 128.1.0-112.221.1 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | firefox | 0 | 129.0.1+build1-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: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 | 129.0.2-r0 |
| openSUSE:Leap 15.5 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| openSUSE:Leap 15.5 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| openSUSE:Leap 15.6 | MozillaFirefox | 0 | 128.1.0-150200.152.146.1 |
| openSUSE:Leap 15.6 | MozillaFirefox-branding-SLE | 0 | 128-150200.9.16.1 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 129.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