CVE-2020-26950
High · 8.8CVSS
8.8
EPSS
42.3%
Published
Dec 9, 2020
CISA due date
—
Cloudanix analysis
A flaw in the browser can let a malicious website take over your computer when you visit it, potentially stealing information or installing harmful software.
- 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
Use-after-free condition triggered when the MCallGetProperty opcode is emitted without satisfying its internal assumptions, allowing memory corruption that can be leveraged for arbitrary code execution.
Why it matters to the business
Attackers can take full control of affected browsers, enabling theft of credentials, sensitive data, or installation of malware across user systems and enterprise endpoints.
How an attack unfolds
An attacker hosts a malicious webpage that delivers specially crafted JavaScript. When the victim visits the page, the browser emits the MCallGetProperty opcode under unmet assumptions, freeing an object that is later reused, resulting in code execution within the browser process.
How to fix it
Upgrade Mozilla Firefox to version 82.0.3 or later, Firefox ESR to 78.4.1 or later, and Thunderbird to 78.4.2 or later. Apply updates immediately given the weaponized exploit maturity and elevated EPSS score.
How to confirm the fix worked
Verify installed browser versions against the fixed releases listed in the advisory; re-test by attempting to load known proof-of-concept pages in an isolated environment and confirm no crash or unexpected behavior occurs after the update.
Typical attack path
- Attacker prepares malicious webpage containing JavaScript that triggers the flawed opcode path
- Victim is lured to the page via phishing, malicious advertisement, or compromised site
- Browser parses and executes the script, emitting MCallGetProperty without required preconditions
- Use-after-free occurs, allowing attacker-controlled memory to be reused for ROP or shellcode
- Payload executes, establishing persistence or exfiltrating data from the browser context
How to detect it
Review browser crash reports and process logs for patterns involving JavaScript execution followed by memory corruption indicators; correlate with web proxy logs showing visits to suspicious domains shortly before anomalous browser activity.
What your security team should do
- Prioritize patching all Firefox, Firefox ESR, and Thunderbird instances within the next 48 hours due to weaponized exploit availability
- Enable automatic updates and enforce browser version controls via enterprise policy
- Block known malicious domains associated with browser exploitation campaigns at the network perimeter
- Monitor endpoint telemetry for unusual browser process behavior or crashes on unpatched systems
The record
In certain circumstances, the MCallGetProperty opcode can be emitted with unmet assumptions resulting in an exploitable use-after-free condition. This vulnerability affects Firefox < 82.0.3, Firefox ESR < 78.4.1, and Thunderbird < 78.4.2.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | firefox-esr | 0 | 78.4.1esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:78.4.2-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 78.4.1esr-1 |
| Debian:11 | thunderbird | 0 | 1:78.4.2-1 |
| Debian:12 | firefox-esr | 0 | 78.4.1esr-1 |
| Debian:12 | thunderbird | 0 | 1:78.4.2-1 |
| Debian:13 | firefox-esr | 0 | 78.4.1esr-1 |
| Debian:13 | thunderbird | 0 | 1:78.4.2-1 |
| Debian:9 | firefox-esr | 0 | 78.4.1esr-1~deb9u1 |
| Debian:9 | thunderbird | 0 | 1:78.4.2-1~deb9u1 |
| Mageia:7 | firefox | 0 | 78.4.1-1.mga7 |
| Mageia:7 | firefox-l10n | 0 | 78.4.1-1.mga7 |
| Mageia:7 | thunderbird | 0 | 78.4.2-1.mga7 |
| Mageia:7 | thunderbird-l10n | 0 | 78.4.2-1.mga7 |
| Red Hat:enterprise_linux:6::client | firefox | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::client | firefox-debuginfo | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird-debuginfo | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox-debuginfo | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox-debuginfo | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird-debuginfo | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox-debuginfo | 0 | 0:78.4.1-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird-debuginfo | 0 | 0:78.4.3-1.el6_10 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:78.4.1-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:78.4.3-1.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:78.4.1-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:78.4.1-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:78.4.1-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:78.4.3-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:78.4.3-1.el8_3 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:78.4.3-1.el8_3 |
| Red Hat:rhel_e4s:8.0::appstream | firefox | 0 | 0:78.4.1-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debuginfo | 0 | 0:78.4.1-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debugsource | 0 | 0:78.4.1-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird | 0 | 0:78.4.3-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debuginfo | 0 | 0:78.4.3-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debugsource | 0 | 0:78.4.3-1.el8_0 |
| Red Hat:rhel_eus:8.1::appstream | firefox | 0 | 0:78.4.1-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debuginfo | 0 | 0:78.4.1-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debugsource | 0 | 0:78.4.1-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird | 0 | 0:78.4.3-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debuginfo | 0 | 0:78.4.3-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debugsource | 0 | 0:78.4.3-1.el8_1 |
| Red Hat:rhel_eus:8.2::appstream | firefox | 0 | 0:78.4.1-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debuginfo | 0 | 0:78.4.1-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | firefox-debugsource | 0 | 0:78.4.1-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird | 0 | 0:78.4.3-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debuginfo | 0 | 0:78.4.3-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debugsource | 0 | 0:78.4.3-1.el8_2 |
| SUSE:Enterprise Storage 5 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 | MozillaFirefox | 0 | 78.4.1-3.116.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | MozillaFirefox | 0 | 78.4.1-8.14.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 78.4.1-78.102.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP1 | MozillaThunderbird | 0 | 78.4.2-3.103.2 |
| SUSE:Linux Enterprise Workstation Extension 15 SP2 | MozillaThunderbird | 0 | 78.4.2-3.103.2 |
| SUSE:OpenStack Cloud 7 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 78.4.1-112.32.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 82.0.3+build1-0ubuntu0.16.04.1 |
| Ubuntu:18.04:LTS | firefox | 0 | 82.0.3+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:78.8.1+build1-0ubuntu0.18.04.1 |
| Ubuntu:20.04:LTS | firefox | 0 | 82.0.3+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:78.7.1+build1-0ubuntu0.20.04.1 |
| 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 |
| openSUSE:Leap 15.1 | MozillaFirefox | 0 | 78.4.1-lp151.2.76.1 |
| openSUSE:Leap 15.1 | MozillaThunderbird | 0 | 78.4.2-lp151.2.56.1 |
| openSUSE:Leap 15.2 | MozillaFirefox | 0 | 78.4.1-lp152.2.27.1 |
| openSUSE:Leap 15.2 | MozillaThunderbird | 0 | 78.4.2-lp152.2.16.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