CVE-2020-12387
High · 8.1CVSS
8.1
EPSS
1.4%
Published
May 26, 2020
CISA due date
—
Cloudanix analysis
A timing flaw when stopping background tasks can let remote attackers crash the program or take it over, threatening service reliability and data safety.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A race condition when running shutdown code for Web Worker led to a use-after-free vulnerability resulting in a potentially exploitable crash.
Why it matters to the business
Remote attackers could crash the application or achieve code execution, disrupting operations and risking data exposure in affected systems such as the listed voting application; low and stable EPSS with no KEV listing reduces immediate ransomware urgency despite the 2325-day exposure window.
How an attack unfolds
An attacker supplies content that starts a Web Worker, then triggers concurrent shutdown paths to win the race, freeing memory that subsequent code still references to corrupt state and gain control.
How to fix it
Upgrade dbijaya/OnlineVotingSystem (GIT) to commit 0181cb0272857696c8eb3e44fcf6cb014ff90f09; apply equivalent fixes to any vendored Web Worker shutdown logic in downstream dependents.
How to confirm the fix worked
Confirm the commit hash or version string matches the fixed release; re-execute shutdown-heavy test cases under concurrency to verify absence of the race.
Typical attack path
- Serve or inject content that initializes a Web Worker
- Force overlapping shutdown and cleanup operations to win the race
- Trigger use-after-free to corrupt memory or control flow
- Escalate to arbitrary code execution or denial of service
How to detect it
Review application and browser crash logs for Web Worker shutdown entries around the time of anomalies; correlate with memory corruption indicators in process dumps; no named threat actors are associated with this CVE.
What your security team should do
- Immediately update the affected repository to the listed fixed commit
- Audit any custom Web Worker usage for similar shutdown races
- Monitor EPSS trend and add the CVE to vulnerability scanning policies
The record
A race condition when running shutdown code for Web Worker led to a use-after-free vulnerability. This resulted in a potentially exploitable crash. This vulnerability affects Firefox ESR < 68.8, Firefox < 76, and Thunderbird < 68.8.0.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | firefox-esr | 0 | 68.8.0esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:68.8.0-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 68.8.0esr-1 |
| Debian:11 | thunderbird | 0 | 1:68.8.0-1 |
| Debian:12 | firefox-esr | 0 | 68.8.0esr-1 |
| Debian:12 | thunderbird | 0 | 1:68.8.0-1 |
| Debian:13 | firefox-esr | 0 | 68.8.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:68.8.0-1 |
| Debian:8 | firefox-esr | 0 | 68.8.0esr-1~deb8u1 |
| Debian:8 | thunderbird | 0 | 1:68.8.0-1~deb8u1 |
| Debian:9 | firefox-esr | 0 | 68.8.0esr-1~deb9u1 |
| Debian:9 | thunderbird | 0 | 1:68.8.0-1~deb9u1 |
| Mageia:7 | firefox | 0 | 68.8.0-1.mga7 |
| Mageia:7 | firefox-l10n | 0 | 68.8.0-1.mga7 |
| Mageia:7 | nss | 0 | 3.52.0-1.mga7 |
| Mageia:7 | rootcerts | 0 | 20191126.00-2.mga7 |
| Mageia:7 | thunderbird | 0 | 68.8.0-1.mga7 |
| Mageia:7 | thunderbird-l10n | 0 | 68.8.0-1.mga7 |
| Red Hat:enterprise_linux:6::client | firefox | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::client | firefox-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird-debuginfo | 0 | 0:68.8.0-1.el6_10 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:68.8.0-1.el7_8 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:68.8.0-1.el8_2 |
| Red Hat:rhel_e4s:8.0::appstream | firefox | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debuginfo | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debugsource | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debuginfo | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debugsource | 0 | 0:68.8.0-1.el8_0 |
| Red Hat:rhel_eus:8.1::appstream | firefox | 0 | 0:68.8.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debuginfo | 0 | 0:68.8.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | firefox-debugsource | 0 | 0:68.8.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird | 0 | 0:68.8.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debuginfo | 0 | 0:68.8.0-1.el8_1 |
| Red Hat:rhel_eus:8.1::appstream | thunderbird-debugsource | 0 | 0:68.8.0-1.el8_1 |
| SUSE:Enterprise Storage 5 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 | MozillaFirefox | 0 | 68.8.0-3.87.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 68.8.0-78.73.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP4 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP1 | MozillaThunderbird | 0 | 68.8.0-3.80.2 |
| SUSE:OpenStack Cloud 7 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 68.8.0-109.119.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 76.0+build2-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | thunderbird | 0 | 1:68.8.0+build2-0ubuntu0.16.04.2 |
| Ubuntu:18.04:LTS | firefox | 0 | 76.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:68.8.0+build2-0ubuntu0.18.04.2 |
| Ubuntu:20.04:LTS | firefox | 0 | 76.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:68.8.0+build2-0ubuntu0.20.04.2 |
| 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 | 68.8.0-lp151.2.45.1 |
| openSUSE:Leap 15.1 | MozillaThunderbird | 0 | 68.8.0-lp151.2.38.2 |
| 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