CVE-2021-29981
High · 8.8CVSS
8.8
EPSS
1.0%
Published
Aug 17, 2021
CISA due date
—
Cloudanix analysis
A bug in the browser's code optimizer could let a malicious website take over a user's computer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A flaw in the JIT compiler's lowering and register allocation phase causes deterministic register confusion in generated machine code, resulting in memory corruption that can lead to an exploitable crash.
Why it matters to the business
Attackers could gain remote code execution on user systems running vulnerable browser or email client versions, enabling data theft, malware deployment, or further network compromise without requiring user privileges beyond visiting a malicious page.
How an attack unfolds
An attacker serves a specially crafted webpage that forces the browser's JIT engine to compile code in a way that triggers the register allocation error; the resulting memory corruption is leveraged to hijack control flow and execute attacker-supplied code.
How to fix it
Upgrade Mozilla Firefox and Thunderbird to version 91 or later; verify that all installations have been updated and remove or isolate any remaining older versions.
How to confirm the fix worked
Confirm installed versions are 91 or newer via the browser's about:support or about:buildconfig pages; attempt to reproduce the original crash condition in a controlled test environment if feasible.
Typical attack path
- Attacker hosts a malicious webpage designed to trigger JIT compilation
- Victim opens the page in an affected Firefox or Thunderbird version
- Register confusion occurs during code generation leading to memory corruption
- Attacker exploits the corruption to achieve code execution
How to detect it
Review browser crash reports and logs for entries referencing JIT compilation or register allocation failures; correlate with network logs showing visits to suspicious domains around the time of any unexpected crashes.
What your security team should do
- Immediately deploy updates to version 91 or later across all endpoints
- Block or filter access to known malicious domains used in browser-targeted campaigns
- Enable crash reporting and monitor for JIT-related process failures
- Review and harden browser sandbox configurations where possible
The record
An issue present in lowering/register allocation could have led to obscure but deterministic register confusion failures in JITted code that would lead to a potentially exploitable crash. This vulnerability affects Firefox < 91 and Thunderbird < 91.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| SUSE:Enterprise Storage 6 | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Enterprise Storage 6 | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Enterprise Storage 6 | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | MozillaFirefox | 0 | 91.2.0-8.54.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | MozillaFirefox-branding-SLE | 0 | 91-9.5.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP3 | MozillaFirefox | 0 | 91.2.0-8.54.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP3 | MozillaFirefox-branding-SLE | 0 | 91-9.5.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 78.14.0-78.140.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 91.2.0-78.143.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox-branding-SLED | 0 | 91-21.18.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Server 15-LTSS | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise Server 15-LTSS | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise Server 15-LTSS | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 91.2.0-3.155.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 91.9.0-150000.150.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox-branding-SLE | 0 | 91-4.19.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 91.9.0-112.104.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.1.0-112.71.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 91.1.0-112.71.1 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 91.9.0-112.104.1 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox-branding-SLE | 0 | 91-35.6.6 |
| Ubuntu:18.04:LTS | firefox | 0 | 91.0+build2-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 | 91.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:91.5.0+build1-0ubuntu0.20.04.1 |
| Ubuntu:22.04:LTS | mozjs78 | 0 | No fix |
| Ubuntu:22.04:LTS | thunderbird | 0 | 1:91.1.2+build1-0ubuntu1 |
| 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.2.0-lp152.2.67.1 |
| openSUSE:Leap 15.2 | MozillaThunderbird | 0 | 91.4.0-lp152.2.52.1 |
| openSUSE:Leap 15.2 | rust-cbindgen | 0 | 0.19.0-lp152.2.7.1 |
| openSUSE:Leap 15.3 | MozillaFirefox | 0 | 91.2.0-8.54.1 |
| openSUSE:Leap 15.3 | MozillaFirefox-branding-SLE | 0 | 91-9.5.1 |
| openSUSE:Leap 15.3 | MozillaThunderbird | 0 | 91.4.0-8.45.2 |
| openSUSE:Leap 15.3 | rust-cbindgen | 0 | 0.19.0-1.9.1 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 92.0-1.2 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2023-23601 Navigations were being allowed when dragging a URL from a cross-origin iframe into the… Also affects MozillaFirefox
- CVE-2023-23603 Regular expressions used to filter out forbidden properties and values from style… Also affects MozillaFirefox
- CVE-2023-23602 A mishandled security check when creating a WebSocket in a WebWorker caused the Content… Also affects MozillaFirefox
- CVE-2023-23605 Memory safety bugs present in Firefox 108 and Firefox ESR 102.6. Also affects MozillaFirefox
- CVE-2023-23598 Due to the Firefox GTK wrapper code's use of text/plain for drag data and GTK treating… Also affects MozillaFirefox
- CVE-2022-46881 An optimization in WebGL was incorrect in some cases, and could have led to memory… Also affects MozillaFirefox
- CVE-2022-46882 A use-after-free in WebGL extensions could have led to a potentially exploitable crash. Also affects MozillaFirefox
- CVE-2022-46880 A missing check related to tex units could have led to a use-after-free and potentially… Also affects MozillaFirefox