CVE-2021-23994
High · 8.8CVSS
8.8
EPSS
1.8%
Published
Jun 24, 2021
CISA due date
—
Cloudanix analysis
A graphics handling bug in some browsers and email programs could let attackers take control of a computer when someone visits a harmful webpage.
- 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
Uninitialized WebGL framebuffer results in memory corruption through an out-of-bounds write.
Why it matters to the business
Attackers may achieve remote code execution or trigger crashes in widely used browsers and email clients, enabling data theft or system compromise for unpatched users across many organizations.
How an attack unfolds
An attacker hosts a malicious webpage containing crafted WebGL content; when a victim visits the page using a vulnerable browser, the uninitialized framebuffer triggers memory corruption that can be leveraged for arbitrary code execution.
How to fix it
Upgrade Mozilla Firefox to version 88 or later, Firefox ESR to 78.10 or later, and Thunderbird to 78.10 or later.
How to confirm the fix worked
Confirm installed product versions meet or exceed the fixed releases listed above and verify that WebGL operations no longer produce crashes or corruption indicators in testing.
Typical attack path
- Attacker prepares malicious webpage with specially crafted WebGL calls
- Victim navigates to the page in an affected browser
- Framebuffer initialization timing flaw is triggered
- Out-of-bounds write causes memory corruption
- Corruption is exploited to execute attacker-controlled code
How to detect it
Examine browser crash logs and memory dumps for WebGL-related corruption patterns; correlate access logs to suspicious domains with subsequent anomalous process behavior.
What your security team should do
- Immediately update all instances of affected Mozilla products to the fixed versions
- Block or monitor access to untrusted websites pending patch deployment
- Review endpoint detection rules for signs of browser memory corruption
The record
A WebGL framebuffer was not initialized early enough, resulting in memory corruption and an out of bound write. This vulnerability affects Firefox ESR < 78.10, Thunderbird < 78.10, and Firefox < 88.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | firefox-esr | 0 | 78.10.0esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:78.10.0-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 78.10.0esr-1 |
| Debian:11 | thunderbird | 0 | 1:78.10.0-1 |
| Debian:12 | firefox-esr | 0 | 78.10.0esr-1 |
| Debian:12 | thunderbird | 0 | 1:78.10.0-1 |
| Debian:13 | firefox-esr | 0 | 78.10.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:78.10.0-1 |
| Debian:9 | firefox-esr | 0 | 78.10.0esr-1~deb9u1 |
| Debian:9 | thunderbird | 0 | 1:78.10.0-1~deb9u1 |
| Mageia:7 | firefox | 0 | 78.10.0-1.1.mga7 |
| Mageia:7 | firefox-l10n | 0 | 78.10.0-1.mga7 |
| Mageia:7 | nss | 0 | 3.64.0-1.mga7 |
| Mageia:7 | thunderbird | 0 | 78.10.0-1.mga7 |
| Mageia:7 | thunderbird-l10n | 0 | 78.10.0-1.mga7 |
| Mageia:8 | firefox | 0 | 78.10.0-1.1.mga8 |
| Mageia:8 | firefox-l10n | 0 | 78.10.0-1.mga8 |
| Mageia:8 | nss | 0 | 3.64.0-1.mga8 |
| Mageia:8 | thunderbird | 0 | 78.10.0-1.mga8 |
| Mageia:8 | thunderbird-l10n | 0 | 78.10.0-1.mga8 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:78.10.0-1.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:78.10.0-1.el8_3 |
| Red Hat:rhel_eus:8.1::appstream | firefox | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debuginfo | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debugsource | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debuginfo | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debugsource | 0 | 0:78.10.0-1.el8_1 |
| Red Hat:rhel_eus:8.2::appstream | firefox | 0 | 0:78.10.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debuginfo | 0 | 0:78.10.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debugsource | 0 | 0:78.10.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird | 0 | 0:78.10.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debuginfo | 0 | 0:78.10.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debugsource | 0 | 0:78.10.0-1.el8_2 |
| SUSE:Enterprise Storage 6 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | MozillaFirefox | 0 | 78.10.0-8.38.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 78.10.0-78.126.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Server 15-LTSS | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:Linux Enterprise Workstation Extension 15 SP2 | MozillaThunderbird | 0 | 78.10.0-8.23.1 |
| SUSE:Manager Proxy 4.0 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Manager Retail Branch Server 4.0 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:Manager Server 4.0 | MozillaFirefox | 0 | 78.10.0-3.139.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 78.10.0-112.57.2 |
| Ubuntu:16.04:LTS | firefox | 0 | 88.0+build2-0ubuntu0.16.04.1 |
| Ubuntu:18.04:LTS | firefox | 0 | 88.0+build2-0ubuntu0.18.04.2 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:18.04:LTS | thunderbird | 0 | 1:78.11.0+build1-0ubuntu0.18.04.2 |
| Ubuntu:20.04:LTS | firefox | 0 | 88.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:78.11.0+build1-0ubuntu0.20.04.2 |
| 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 | 78.10.0-lp152.2.55.1 |
| openSUSE:Leap 15.2 | MozillaThunderbird | 0 | 78.10.0-lp152.2.41.1 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 92.0-1.2 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 91.1.1-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2024-5696 By manipulating the text in an `input` tag, an attacker could have caused corrupt memory… Also affects firefox-esr
- CVE-2024-5700 Memory safety bugs present in Firefox 126, Firefox ESR 115.11, and Thunderbird 115.11. Also affects firefox-esr
- CVE-2024-5702 Memory corruption in the networking stack could have led to a potentially exploitable… Also affects firefox-esr
- CVE-2024-5693 Offscreen Canvas did not properly track cross-origin tainting, which could be used to… Also affects firefox-esr
- CVE-2024-5688 If a garbage collection was triggered at the right time, a use-after-free could have… Also affects firefox-esr
- CVE-2024-5691 By tricking the browser with a `X-Frame-Options` header, a sandboxed iframe could have… Also affects firefox-esr
- CVE-2024-5690 By monitoring the time certain operations take, an attacker could have guessed which… Also affects firefox-esr
- CVE-2024-4777 Memory safety bugs present in Firefox 125, Firefox ESR 115.10, and Thunderbird 115.10. Also affects firefox-esr