CVE-2021-43539
High · 8.8CVSS
8.8
EPSS
1.7%
Published
Dec 8, 2021
CISA due date
—
Cloudanix analysis
A bug in how the browser handles certain web code could let attackers take control of a user's computer simply by getting them to visit a malicious webpage or open a bad email.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Incorrect recording of live pointers across WebAssembly instance calls allows a garbage collection event during the call to skip tracing, resulting in a use-after-free that can be leveraged for memory corruption and remote code execution.
Why it matters to the business
Attackers can crash browsers or execute arbitrary code on user systems via crafted web content or email, risking data theft, ransomware deployment, and loss of user trust across desktop and enterprise environments.
How an attack unfolds
An attacker hosts or sends a malicious page or message containing WebAssembly code that invokes an instance call while live pointers exist; when garbage collection is triggered inside the call the untraced pointers become dangling, enabling the attacker to corrupt memory and achieve code execution in the renderer process.
How to fix it
Upgrade Mozilla Firefox to version 95 or later, Firefox ESR to 91.4.0 or later, and Thunderbird to 91.4.0 or later. Apply vendor updates as soon as they become available and verify installed versions against the fixed releases.
How to confirm the fix worked
Confirm the installed browser or email client version meets or exceeds the fixed releases; re-test affected WebAssembly scenarios in a controlled environment and monitor for absence of the previously observed crash signatures.
Typical attack path
- Deliver malicious WebAssembly content via compromised or attacker-controlled website or email attachment
- Victim browser parses and executes the WebAssembly instance call
- Garbage collection occurs inside the call before live pointers are correctly recorded
- Use-after-free is triggered allowing memory corruption
- Attacker chains corruption to achieve arbitrary code execution or browser crash
How to detect it
Search browser process crash reports and telemetry for use-after-free signatures involving WebAssembly instance calls; review web proxy and email gateway logs for delivery of content that triggers WASM execution followed by renderer instability.
What your security team should do
- Prioritize immediate patching of all Firefox, ESR, and Thunderbird instances across the organization
- Enable automatic updates where possible and enforce version checks in endpoint management tools
- Review and restrict WebAssembly usage in high-risk internal applications until patches are deployed
- Update incident response playbooks to include browser renderer process crash investigation
The record
Failure to correctly record the location of live pointers across wasm instance calls resulted in a GC occurring within the call not tracing those live pointers. This could have led to a use-after-free causing a potentially exploitable crash. This vulnerability affects Thunderbird < 91.4.0, Firefox ESR < 91.4.0, and Firefox < 95.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 91.4.0-1.el8_5.alma |
| AlmaLinux:8 | thunderbird | 0 | 91.4.0-2.el8_5.alma |
| AlmaLinux:8 | thunderbird | 0 | 91.4.0-2.el8_5.alma.plus |
| Debian:10 | thunderbird | 0 | 1:91.4.1-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 91.4.1esr-1~deb11u1 |
| Debian:11 | thunderbird | 0 | 1:91.4.1-1~deb11u1 |
| Debian:12 | firefox-esr | 0 | 91.4.0esr-1 |
| Debian:12 | thunderbird | 0 | 1:91.4.0-1 |
| Debian:13 | firefox-esr | 0 | 91.4.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:91.4.0-1 |
| Debian:9 | firefox-esr | 0 | 91.4.1esr-1~deb9u1 |
| Debian:9 | thunderbird | 0 | 1:91.4.1-1~deb9u1 |
| Mageia:8 | firefox | 0 | 91.4.0-1.mga8 |
| Mageia:8 | firefox-l10n | 0 | 91.4.0-1.mga8 |
| Mageia:8 | thunderbird | 0 | 91.4.0-1.mga8 |
| Mageia:8 | thunderbird-l10n | 0 | 91.4.0-1.mga8 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:91.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:91.4.0-3.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:91.4.0-1.el8_5 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:91.4.0-1.el8_5 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:91.4.0-1.el8_5 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:91.4.0-2.el8_5 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:91.4.0-2.el8_5 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:91.4.0-2.el8_5 |
| Red Hat:rhel_e4s:8.1::appstream | firefox | 0 | 0:91.4.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debuginfo | 0 | 0:91.4.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debugsource | 0 | 0:91.4.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird | 0 | 0:91.4.0-2.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debuginfo | 0 | 0:91.4.0-2.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debugsource | 0 | 0:91.4.0-2.el8_1 |
| Red Hat:rhel_eus:8.2::appstream | firefox | 0 | 0:91.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debuginfo | 0 | 0:91.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debugsource | 0 | 0:91.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird | 0 | 0:91.4.0-2.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debuginfo | 0 | 0:91.4.0-2.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debugsource | 0 | 0:91.4.0-2.el8_2 |
| Red Hat:rhel_eus:8.4::appstream | firefox | 0 | 0:91.4.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | firefox-debuginfo | 0 | 0:91.4.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | firefox-debugsource | 0 | 0:91.4.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird | 0 | 0:91.4.0-2.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debuginfo | 0 | 0:91.4.0-2.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debugsource | 0 | 0:91.4.0-2.el8_4 |
| Rocky Linux:8 | firefox | 0 | 0:91.4.0-1.el8_5 |
| Rocky Linux:8 | thunderbird | 0 | 0:91.4.0-2.el8_5 |
| SUSE:Enterprise Storage 6 | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | MozillaFirefox | 0 | 91.4.0-152.9.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP3 | MozillaFirefox | 0 | 91.4.0-152.9.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 91.4.0-78.154.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Server 15-LTSS | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 91.4.0-150.9.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP2 | MozillaThunderbird | 0 | 91.4.0-8.45.2 |
| SUSE:Linux Enterprise Workstation Extension 15 SP3 | MozillaThunderbird | 0 | 91.4.0-8.45.2 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 91.4.0-112.83.1 |
| Ubuntu:18.04:LTS | firefox | 0 | 95.0+build1-0ubuntu0.18.04.1 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:18.04:LTS | thunderbird | 0 | 1:91.5.0+build1-0ubuntu0.18.04.1 |
| Ubuntu:20.04:LTS | firefox | 0 | 95.0+build1-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:91.5.0+build1-0ubuntu0.20.04.1 |
| Ubuntu:22.04:LTS | firefox | 0 | 95.0+build1-0ubuntu1 |
| Ubuntu:22.04:LTS | mozjs78 | 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 |
| openSUSE:Leap 15.2 | MozillaFirefox | 0 | 91.4.0-lp152.2.74.1 |
| openSUSE:Leap 15.2 | MozillaThunderbird | 0 | 91.4.0-lp152.2.52.1 |
| openSUSE:Leap 15.3 | MozillaFirefox | 0 | 91.4.0-152.9.1 |
| openSUSE:Leap 15.3 | MozillaThunderbird | 0 | 91.4.0-8.45.2 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 95.0-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 91.4.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