CVE-2016-10244
High · 7.8CVSS
7.8
EPSS
3.4%
Published
Mar 6, 2017
CISA due date
—
Cloudanix analysis
An outdated font library can crash programs or cause other problems when it tries to read certain specially made font files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer over-read in parse_charstrings during Type1 font processing when a glyph name is absent, enabling denial of service or unspecified memory corruption effects.
Why it matters to the business
Applications rendering documents or fonts may crash when encountering crafted files, interrupting workflows in desktop and server environments; the issue is more than nine years old with public exploits available but no observed ransomware or KEV-listed campaigns.
How an attack unfolds
An attacker supplies a crafted Type1 font lacking a required glyph name; when a victim opens the file in an application linked to vulnerable FreeType, the parse_charstrings function performs an out-of-bounds read on the heap.
How to fix it
Upgrade FreeType to the version containing commit 069083cccd73d1d68da68116c8d050bb62cdfe0e or later; rebuild and redeploy any applications that statically link or bundle the library.
How to confirm the fix worked
Confirm the installed FreeType version is 2.7 or newer, or inspect the source tree for the presence of the referenced commit hash in t1load.c.
Typical attack path
- Create a malicious Type1 font missing a glyph name entry
- Deliver the font inside a document, email attachment, or web resource
- Victim opens the file with an affected application
- FreeType parsing triggers the buffer over-read
How to detect it
Review application crash logs and core dumps from processes that load fonts; correlate unexpected terminations with recent file opens involving Type1 or PostScript fonts.
What your security team should do
- Update FreeType across all desktop, server, and embedded deployments
- Audit and replace any vendored or statically linked copies of the library
- Test font-handling paths in document viewers and printers after patching
The record
The parse_charstrings function in type1/t1load.c in FreeType 2 before 2.7 does not ensure that a font contains a glyph name, which allows remote attackers to cause a denial of service (heap-based buffer over-read) or possibly have unspecified other impact via a crafted file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.2 | freetype | 0 | 2.5.5-r1 |
| Alpine:v3.3 | freetype | 0 | 2.6.3-r0 |
| Alpine:v3.4 | freetype | 0 | 2.6.3-r1 |
| Debian:11 | freetype | 0 | 2.6.3-3.1 |
| Debian:12 | freetype | 0 | 2.6.3-3.1 |
| Debian:13 | freetype | 0 | 2.6.3-3.1 |
| Debian:14 | freetype | 0 | 2.6.3-3.1 |
| Debian:7 | freetype | 0 | 2.4.9-1.1+deb7u4 |
| Debian:8 | freetype | 0 | 2.5.2-3+deb8u2 |
| Mageia:5 | freetype2 | 0 | 2.5.4-2.1.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP2 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server 11 SP4 | freetype2 | 0 | 2.3.7-25.45.5.1 |
| SUSE:Linux Enterprise Server 11 SP4 | ft2demos | 0 | 2.3.7-25.45.5.1 |
| SUSE:Linux Enterprise Server 12 SP2 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server 12 SP2 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server 12 SP3 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server 12 SP3 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | freetype2 | 0 | 2.3.7-25.45.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | ft2demos | 0 | 2.3.7-25.45.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | ft2demos | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | freetype2 | 0 | 2.3.7-25.45.5.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | freetype2 | 0 | 2.6.3-7.15.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | freetype2 | 0 | 2.6.3-7.15.1 |
| Ubuntu:14.04:LTS | freetype | 0 | 2.5.2-1ubuntu2.6 |
| Ubuntu:16.04:LTS | freetype | 0 | 2.6.1-0.1ubuntu2.1 |
Related vulnerabilities
- CVE-2017-8105 FreeType 2 before 2017-03-24 has an out-of-bounds write caused by a heap-based buffer… Also affects freetype
- CVE-2025-27363 An out of bounds write exists in FreeType versions 2.13.0 and below (newer versions of… Also affects freetype
- CVE-2022-27406 FreeType commit 22a0cccb4d9d002f33c1ba7a4b36812c7d4f46b5 was discovered to contain a… Also affects freetype
- CVE-2022-27405 FreeType commit 53dfdcd8198d2b3201a23c4bad9190519ba918db was discovered to contain a… Also affects freetype
- CVE-2020-15999 Heap buffer overflow in Freetype in Google Chrome prior to 86.0.4240.111 allowed a remote… Also affects freetype
- CVE-2015-9381 FreeType before 2.6.1 has a heap-based buffer over-read in T1_Get_Private_Dict in… Also affects freetype
- CVE-2015-9383 FreeType before 2.6.2 has a heap-based buffer over-read in tt_cmap14_validate in… Also affects freetype
- CVE-2014-9745 The parse_encoding function in type1/t1load.c in FreeType before 2.5.3 allows remote… Also affects freetype