Cloudanix VulnDB

CVE-2020-15999

Medium · 6.5 CISA KEV

CVSS

6.5

EPSS

63.9%

Published

Nov 3, 2020

CISA due date

Nov 17, 2021

Cloudanix analysis

Act now SSVC: Attend

A malicious website can crash or take over an outdated web browser by feeding it a bad font file, so every computer still running that old browser or font library needs to be updated.

Active In The Wild Chainable
Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Low
Patch risk
Low

What it actually does

A heap buffer overflow in FreeType occurs while decoding PNG-compressed embedded bitmap glyphs (sbit data in TrueType/OpenType fonts). In Google Chrome prior to 86.0.4240.111, a remote page that supplies a crafted font can corrupt heap memory in the renderer (or any other process linking the vulnerable FreeType). The assigned CVSS emphasizes availability (process crash), but heap corruption of this class has been used in the wild as a memory-corruption primitive toward renderer code execution when combined with additional bugs.

Why it matters to the business

Unpatched browsers and any product that still bundles vulnerable FreeType can be compromised when a user simply opens a malicious page, leading to workstation takeover, session theft, and follow-on intrusion. The flaw is on CISA KEV (due 2021-11-17, long overdue), has been actively exploited in the wild for years, and carries a high and rising EPSS (0.44 → 0.64 over 30 days). FreeType is ubiquitous across browsers, desktops, document renderers, and embedded UI stacks, so residual exposure is an enterprise-wide patch-compliance and regulatory risk rather than a Chrome-only issue. Ransomware use is not indicated in KEV.

How an attack unfolds

An attacker places a web page that embeds or downloads a malicious font whose PNG-compressed bitmap glyph triggers the FreeType heap overflow. The victim is induced to open that page in a vulnerable Chrome/Chromium build (or another FreeType consumer) via phishing, malvertising, or a compromised site. Parsing the font corrupts the renderer heap; in observed in-the-wild campaigns this primitive was chained with other Chrome/Chromium memory-safety bugs (use-after-free, V8 type confusion / incorrect implementation) to run attacker code in the renderer and then attempt sandbox escape or data theft. No further interaction beyond loading the page is required after the user navigates to it.

How to fix it

Upgrade Google Chrome/Chromium to 86.0.4240.111 or later. For standalone or embedded FreeType (desktop.org/freetype/freetype GIT), move to a build that includes commit 6a2b3e4007e794bfc6c91030d0ed987f925164a8 or any later upstream/release that contains that fix, then rebuild and redeploy all downstream binaries (browsers, office/PDF viewers, UI toolkits, printers, and embedded devices). Until patched, restrict untrusted browsing, disable unnecessary remote font loading where the product allows it, and isolate high-risk users. Confirm SBOMs and OS packages so leftover libfreetype copies are not missed.

How to confirm the fix worked

Inventory Chrome/Chromium and every FreeType consumer; verify browser version is 86.0.4240.111+ and FreeType source/package maps to commit 6a2b3e4007e794bfc6c91030d0ed987f925164a8 or a later patched release. Check OS package versions (libfreetype6 and equivalents), container/base images, and statically linked copies via SBOM or binary identification. After upgrade, smoke-test font rendering (web, PDF, desktop UI) and confirm crash telemetry for freetype/renderer faults has dropped. Treat any remaining pre-fix commit or Chrome < 86.0.4240.111 as exposed.

Typical attack path

  1. Attacker prepares a page that loads a crafted font containing a malformed PNG-compressed bitmap glyph targeting FreeType.
  2. Page is delivered through phishing, malvertising, a watering-hole, or an injected iframe.
  3. Victim opens the page in Chrome/Chromium before 86.0.4240.111 or another app using unpatched FreeType.
  4. FreeType parses the glyph and overflows a heap buffer in the renderer (or host process).
  5. Heap corruption is combined with additional browser primitives (historically UAF / V8 issues) to obtain renderer code execution.
  6. Attacker attempts post-exploitation such as sandbox escape, credential or session theft, or implant deployment.

How to detect it

This is a client-side memory-corruption bug; successful exploitation often leaves only a renderer crash plus later post-exploitation, so hunt artifacts rather than a single exploit signature. Review browser crash reports and Breakpad/Crashpad minidumps for chrome/chromium renderer faults in libfreetype / freetype, especially stacks involving PNG sbit / Load_SBit_Png-style paths, on builds before 86.0.4240.111. Correlate short-lived visits to untrusted sites with subsequent renderer crashes, unexpected child processes of the browser, sandbox-escape attempts, or new persistence. Endpoint/EDR process trees, DNS/proxy logs for the landing page, and font-cache or downloaded .ttf/.otf/.woff files from the same timeframe are useful. Historical in-the-wild use was often chained with other Chrome UAF and V8 bugs—treat clustered Chromium memory-safety crashes as higher confidence. There is no reliable network IOC unique to the overflow itself.

  • chrome/chromium version < 86.0.4240.111
  • libfreetype
  • freetype
  • Load_SBit_Png
  • renderer crash AND freetype
  • chrome.exe --type=renderer
  • Crashpad
  • Breakpad minidump
  • embedded PNG sbit / sbix / CBDT font tables in downloaded .ttf/.otf/.woff

What your security team should do

  • Patch or rebuild all Chrome/Chromium and FreeType consumers immediately; this is an overdue CISA KEV item with confirmed in-the-wild exploitation.
  • Hunt SBOM, package, and endpoint inventory for libfreetype/freetype and Chrome < 86.0.4240.111, including embedded and statically linked copies.
  • Prioritize internet-facing user workstations and VDI/browser farms; EPSS is high and rising.
  • Review historical crash and EDR telemetry for renderer/FreeType faults around first publication (2020-11) and any later unpatched window.
  • Block or tightly control loading of untrusted webfonts and untrusted HTML in high-security enclaves until inventory is clean.
  • Track related Chrome memory-corruption KEV issues (UAF and V8 type-confusion/incorrect-implementation families) as common chaining partners.

The record

Heap buffer overflow in Freetype in Google Chrome prior to 86.0.4240.111 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.

Affected packages

Ecosystem Package Introduced Fixed
NuGet CefSharp.Common 0 85.3.130
NuGet CefSharp.WinForms 0 85.3.130
NuGet CefSharp.Wpf 0 85.3.130
NuGet CefSharp.Wpf.HwndHost 0 85.3.130
AlmaLinux:8 freetype 0 2.9.1-4.el8_3.1
AlmaLinux:8 freetype-devel 0 2.9.1-4.el8_3.1
Alpine:v3.10 freetype 0 2.10.0-r1
Alpine:v3.11 freetype 0 2.10.1-r1
Alpine:v3.12 freetype 0 2.10.4-r0
Alpine:v3.13 freetype 0 2.10.4-r0
Alpine:v3.14 freetype 0 2.10.4-r0
Alpine:v3.15 freetype 0 2.10.4-r0
Alpine:v3.16 freetype 0 2.10.4-r0
Alpine:v3.17 freetype 0 2.10.4-r0
Alpine:v3.18 freetype 0 2.10.4-r0
Alpine:v3.19 freetype 0 2.10.4-r0
Alpine:v3.20 freetype 0 2.10.4-r0
Alpine:v3.21 freetype 0 2.10.4-r0
Alpine:v3.22 freetype 0 2.10.4-r0
Alpine:v3.9 freetype 0 2.9.1-r3
Android platform/external/freetype 10:0 10:2021-01-01
Android platform/external/freetype 11:0 11:2021-01-01
Android platform/external/freetype 8.0:0 8.0:2021-01-01
Android platform/external/freetype 8.1:0 8.1:2021-01-01
Android platform/external/freetype 9:0 9:2021-01-01
Debian:10 chromium 0 87.0.4280.88-0.4~deb10u1
Debian:10 freetype 0 2.9.1-3+deb10u2
Debian:11 freetype 0 2.10.2+dfsg-4
Debian:12 freetype 0 2.10.2+dfsg-4
Debian:13 freetype 0 2.10.2+dfsg-4
Debian:14 freetype 0 2.10.2+dfsg-4
Debian:9 freetype 0 2.6.3-3.2+deb9u2
Mageia:7 freetype2 0 2.9.1-4.1.mga7
Red Hat:enterprise_linux:7::client freetype 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::client freetype-debuginfo 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::client freetype-demos 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::client freetype-devel 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::computenode freetype 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::computenode freetype-debuginfo 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::computenode freetype-demos 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::computenode freetype-devel 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::server freetype 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::server freetype-debuginfo 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::server freetype-demos 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::server freetype-devel 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::workstation freetype 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::workstation freetype-debuginfo 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::workstation freetype-demos 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:7::workstation freetype-devel 0 0:2.8-14.el7_9.1
Red Hat:enterprise_linux:8::baseos freetype 0 0:2.9.1-4.el8_3.1
Red Hat:enterprise_linux:8::baseos freetype-debuginfo 0 0:2.9.1-4.el8_3.1
Red Hat:enterprise_linux:8::baseos freetype-debugsource 0 0:2.9.1-4.el8_3.1
Red Hat:enterprise_linux:8::baseos freetype-demos-debuginfo 0 0:2.9.1-4.el8_3.1
Red Hat:enterprise_linux:8::baseos freetype-devel 0 0:2.9.1-4.el8_3.1
Red Hat:rhel_e4s:8.0::baseos freetype 0 0:2.9.1-4.el8_0.1
Red Hat:rhel_e4s:8.0::baseos freetype-debuginfo 0 0:2.9.1-4.el8_0.1
Red Hat:rhel_e4s:8.0::baseos freetype-debugsource 0 0:2.9.1-4.el8_0.1
Red Hat:rhel_e4s:8.0::baseos freetype-demos-debuginfo 0 0:2.9.1-4.el8_0.1
Red Hat:rhel_e4s:8.0::baseos freetype-devel 0 0:2.9.1-4.el8_0.1
Red Hat:rhel_eus:8.1::baseos freetype 0 0:2.9.1-4.el8_1.1
Red Hat:rhel_eus:8.1::baseos freetype-debuginfo 0 0:2.9.1-4.el8_1.1
Red Hat:rhel_eus:8.1::baseos freetype-debugsource 0 0:2.9.1-4.el8_1.1
Red Hat:rhel_eus:8.1::baseos freetype-demos-debuginfo 0 0:2.9.1-4.el8_1.1
Red Hat:rhel_eus:8.1::baseos freetype-devel 0 0:2.9.1-4.el8_1.1
Red Hat:rhel_eus:8.2::baseos freetype 0 0:2.9.1-4.el8_2.1
Red Hat:rhel_eus:8.2::baseos freetype-debuginfo 0 0:2.9.1-4.el8_2.1
Red Hat:rhel_eus:8.2::baseos freetype-debugsource 0 0:2.9.1-4.el8_2.1
Red Hat:rhel_eus:8.2::baseos freetype-demos-debuginfo 0 0:2.9.1-4.el8_2.1
Red Hat:rhel_eus:8.2::baseos freetype-devel 0 0:2.9.1-4.el8_2.1
Red Hat:rhel_extras:6 chromium-browser 0 0:86.0.4240.111-1.el6_10
Red Hat:rhel_extras:6 chromium-browser-debuginfo 0 0:86.0.4240.111-1.el6_10
Rocky Linux:8 freetype 0 0:2.9.1-4.el8_3.1
SUSE:Enterprise Storage 5 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Enterprise Storage 5 freetype2 0 2.6.3-7.18.1
SUSE:Enterprise Storage 5 ft2demos 0 2.6.3-7.18.1
SUSE:HPE Helion OpenStack 8 MozillaFirefox 0 78.5.0-112.36.1
SUSE:HPE Helion OpenStack 8 freetype2 0 2.6.3-7.18.1
SUSE:HPE Helion OpenStack 8 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise High Performance Computing 15-ESPOS freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise High Performance Computing 15-LTSS freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise Module for Basesystem 15 SP1 freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise Module for Basesystem 15 SP2 freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 MozillaFirefox 0 78.5.0-3.119.1
SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 MozillaFirefox 0 78.5.0-8.17.1
SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 ft2demos 0 2.10.1-4.8.1
SUSE:Linux Enterprise Server 11 SP4-LTSS MozillaFirefox 0 78.5.0-78.105.1
SUSE:Linux Enterprise Server 12 SP2-BCL MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP2-BCL freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP2-BCL ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP2-LTSS MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP2-LTSS freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP2-LTSS ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP3-BCL MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP3-BCL freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP3-BCL ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP3-LTSS MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP3-LTSS freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP3-LTSS ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP4-LTSS MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP4-LTSS freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP4-LTSS ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP5 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server 12 SP5 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 12 SP5 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server 15-LTSS freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP2 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP2 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP2 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 ft2demos 0 2.6.3-7.18.1
SUSE:Linux Enterprise Server for SAP Applications 15 freetype2 0 2.10.1-4.8.1
SUSE:Linux Enterprise Software Development Kit 12 SP5 MozillaFirefox 0 78.5.0-112.36.1
SUSE:Linux Enterprise Software Development Kit 12 SP5 freetype2 0 2.6.3-7.18.1
SUSE:Linux Enterprise Workstation Extension 15 SP1 MozillaThunderbird 0 78.5.0-3.107.1
SUSE:Linux Enterprise Workstation Extension 15 SP2 MozillaThunderbird 0 78.5.0-3.107.1
SUSE:OpenStack Cloud 7 MozillaFirefox 0 78.5.0-112.36.1
SUSE:OpenStack Cloud 7 freetype2 0 2.6.3-7.18.1
SUSE:OpenStack Cloud 7 ft2demos 0 2.6.3-7.18.1
SUSE:OpenStack Cloud 8 MozillaFirefox 0 78.5.0-112.36.1
SUSE:OpenStack Cloud 8 freetype2 0 2.6.3-7.18.1
SUSE:OpenStack Cloud 8 ft2demos 0 2.6.3-7.18.1
SUSE:OpenStack Cloud 9 MozillaFirefox 0 78.5.0-112.36.1
SUSE:OpenStack Cloud 9 freetype2 0 2.6.3-7.18.1
SUSE:OpenStack Cloud 9 ft2demos 0 2.6.3-7.18.1
SUSE:OpenStack Cloud Crowbar 8 MozillaFirefox 0 78.5.0-112.36.1
SUSE:OpenStack Cloud Crowbar 8 freetype2 0 2.6.3-7.18.1
SUSE:OpenStack Cloud Crowbar 8 ft2demos 0 2.6.3-7.18.1
SUSE:OpenStack Cloud Crowbar 9 MozillaFirefox 0 78.5.0-112.36.1
SUSE:OpenStack Cloud Crowbar 9 freetype2 0 2.6.3-7.18.1
SUSE:OpenStack Cloud Crowbar 9 ft2demos 0 2.6.3-7.18.1
SUSE:Package Hub 15 SP1 chromium 0 86.0.4240.111-bp151.3.116.1
SUSE:Package Hub 15 SP2 chromium 0 86.0.4240.183-bp152.2.26.1
SUSE:Package Hub 15 SP2 gn 0 0.1807-bp152.2.3.4
Ubuntu:14.04:LTS freetype 0 2.5.2-1ubuntu2.8+esm2
Ubuntu:16.04:LTS android 0 No fix
Ubuntu:16.04:LTS chromium-browser 0 86.0.4240.198-0ubuntu0.16.04.1
Ubuntu:16.04:LTS freetype 0 2.6.1-0.1ubuntu2.5
Ubuntu:18.04:LTS chromium-browser 0 86.0.4240.198-0ubuntu0.18.04.1
Ubuntu:18.04:LTS freetype 0 2.8.1-2ubuntu2.1
Ubuntu:20.04:LTS freetype 0 2.10.1-2ubuntu0.1
Ubuntu:Pro:14.04:LTS freetype 0 2.5.2-1ubuntu2.8+esm2
Ubuntu:Pro:16.04:LTS android 0 No fix
openSUSE:Leap 15.1 MozillaFirefox 0 78.5.0-lp151.2.79.1
openSUSE:Leap 15.1 MozillaThunderbird 0 78.5.0-lp151.2.59.1
openSUSE:Leap 15.1 chromium 0 86.0.4240.111-lp151.2.147.1
openSUSE:Leap 15.1 freetype2 0 2.10.1-lp151.4.6.1
openSUSE:Leap 15.1 ft2demos 0 2.10.1-lp151.4.6.1
openSUSE:Leap 15.1 NonFree opera 0 72.0.3815.320-lp152.2.21.1
openSUSE:Leap 15.2 MozillaFirefox 0 78.5.0-lp152.2.30.1
openSUSE:Leap 15.2 MozillaFirefox 0 78.5.0-lp152.2.33.1
openSUSE:Leap 15.2 MozillaThunderbird 0 78.5.0-lp152.2.19.1
openSUSE:Leap 15.2 chromium 0 86.0.4240.111-lp152.2.42.1
openSUSE:Leap 15.2 freetype2 0 2.10.1-lp152.2.5.1
openSUSE:Leap 15.2 ft2demos 0 2.10.1-lp152.2.5.1
openSUSE:Leap 15.2 python-CairoSVG 0 2.5.1-lp152.2.3.1
openSUSE:Leap 15.2 python-Pillow 0 8.3.1-lp152.5.3.1
openSUSE:Leap 15.2 NonFree opera 0 72.0.3815.320-lp152.2.21.1
openSUSE:Tumbleweed MozillaFirefox 0 92.0-1.2
openSUSE:Tumbleweed MozillaThunderbird 0 91.1.1-1.1
openSUSE:Tumbleweed chromium 0 93.0.4577.82-1.1
openSUSE:Tumbleweed chromium 0 113.0.5672.92-1.1
openSUSE:Tumbleweed firefox-esr 0 128.5.1-1.1
openSUSE:Tumbleweed freetype2 0 2.11.0-1.2
openSUSE:Tumbleweed python-Pillow 0 8.3.2-1.2
openSUSE:Tumbleweed python-Pillow 0 10.3.0-1.1

Related vulnerabilities