CVE-2020-6821
High · 7.5CVSS
7.5
EPSS
1.5%
Published
Apr 24, 2020
CISA due date
—
Cloudanix analysis
A flaw in older web browsers could allow websites to read private information that should have stayed hidden inside the computer's memory.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
WebGL copyTexSubImage method returns uninitialized memory contents instead of zero when reading partially or fully outside the source resource, enabling disclosure of sensitive data from browser process memory.
Why it matters to the business
Attackers may obtain private user data such as credentials, browsing history, or other process memory contents by tricking users into visiting malicious websites, increasing risk of further compromise and data loss.
How an attack unfolds
An attacker hosts a malicious webpage containing crafted WebGL JavaScript that invokes copyTexSubImage on out-of-bounds regions; the browser returns uninitialized memory values that the script can exfiltrate to the attacker server.
How to fix it
Upgrade affected Mozilla products to Firefox 75 or later, Firefox ESR 68.7 or later, and Thunderbird 68.7 or later; enable automatic updates where possible and audit enterprise browser deployments.
How to confirm the fix worked
Verify installed browser versions meet or exceed the fixed releases; test WebGL copyTexSubImage behavior with known-good test cases that confirm zeroed output on out-of-bounds reads.
Typical attack path
- User visits attacker-controlled webpage
- Page executes JavaScript that sets up WebGL context and calls copyTexSubImage with out-of-bounds parameters
- Browser returns uninitialized memory instead of zeros
- Script reads and transmits leaked data back to attacker
How to detect it
Review browser process memory dumps or crash logs for unexpected WebGL texture copy operations; inspect network logs for exfiltration of large binary blobs immediately following WebGL API calls from untrusted origins.
What your security team should do
- Prioritize browser updates across all endpoints within the next 30 days due to public disclosure
- Block or sandbox untrusted web content via enterprise proxy or browser policies until patches are applied
- Monitor for any reported WebGL-related crashes or anomalous memory access in endpoint telemetry
The record
When reading from areas partially or fully outside the source resource with WebGL's <code>copyTexSubImage</code> method, the specification requires the returned values be zero. Previously, this memory was uninitialized, leading to potentially sensitive data disclosure. This vulnerability affects Thunderbird < 68.7.0, Firefox ESR < 68.7, and Firefox < 75.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | firefox-esr | 0 | 68.7.0esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:68.7.0-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 68.7.0esr-1 |
| Debian:11 | thunderbird | 0 | 1:68.7.0-1 |
| Debian:12 | firefox-esr | 0 | 68.7.0esr-1 |
| Debian:12 | thunderbird | 0 | 1:68.7.0-1 |
| Debian:13 | firefox-esr | 0 | 68.7.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:68.7.0-1 |
| Debian:8 | firefox-esr | 0 | 68.7.0esr-1~deb8u1 |
| Debian:8 | thunderbird | 0 | 1:68.7.0-1~deb8u1 |
| Debian:9 | firefox-esr | 0 | 68.7.0esr-1~deb9u1 |
| Debian:9 | thunderbird | 0 | 1:68.7.0-1~deb9u1 |
| Mageia:7 | firefox | 0 | 68.7.0-1.mga7 |
| Mageia:7 | firefox-l10n | 0 | 68.7.0-1.mga7 |
| Mageia:7 | thunderbird | 0 | 68.7.0-1.mga7 |
| Mageia:7 | thunderbird-l10n | 0 | 68.7.0-1.mga7 |
| Red Hat:enterprise_linux:6::client | firefox | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::client | firefox-debuginfo | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:6::client | thunderbird-debuginfo | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::computenode | firefox-debuginfo | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::server | firefox-debuginfo | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:6::server | thunderbird-debuginfo | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::workstation | firefox-debuginfo | 0 | 0:68.7.0-2.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:6::workstation | thunderbird-debuginfo | 0 | 0:68.7.0-1.el6_10 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:68.7.0-2.el7_8 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:68.7.0-1.el7_8 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:68.7.0-2.el8_1 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:68.7.0-2.el8_1 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:68.7.0-2.el8_1 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:68.7.0-1.el8_1 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:68.7.0-1.el8_1 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:68.7.0-1.el8_1 |
| Red Hat:rhel_e4s:8.0::appstream | firefox | 0 | 0:68.7.0-2.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debuginfo | 0 | 0:68.7.0-2.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | firefox-debugsource | 0 | 0:68.7.0-2.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird | 0 | 0:68.7.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debuginfo | 0 | 0:68.7.0-1.el8_0 |
| Red Hat:rhel_e4s:8.0::appstream | thunderbird-debugsource | 0 | 0:68.7.0-1.el8_0 |
| SUSE:Enterprise Storage 5 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:HPE Helion OpenStack 8 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 | MozillaFirefox | 0 | 68.7.0-3.84.2 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 68.7.0-78.70.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP4 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP1 | MozillaThunderbird | 0 | 68.7.0-3.77.1 |
| SUSE:OpenStack Cloud 7 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:OpenStack Cloud 8 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| SUSE:OpenStack Cloud Crowbar 8 | MozillaFirefox | 0 | 68.7.0-109.116.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 75.0+build3-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | thunderbird | 0 | 1:68.7.0+build1-0ubuntu0.16.04.2 |
| Ubuntu:18.04:LTS | firefox | 0 | 75.0+build3-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.7.0+build1-0ubuntu0.18.04.1 |
| Ubuntu:20.04:LTS | firefox | 0 | 75.0+build3-0ubuntu1 |
| Ubuntu:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:20.04:LTS | thunderbird | 0 | 1:68.7.0+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 |
| openSUSE:Leap 15.1 | MozillaFirefox | 0 | 68.7.0-lp151.2.42.1 |
| openSUSE:Leap 15.1 | MozillaThunderbird | 0 | 68.7.0-lp151.2.31.1 |
| openSUSE:Leap 15.1 | MozillaThunderbird | 0 | 68.7.0-lp151.2.35.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