CVE-2014-9745
NoneCVSS
—
EPSS
3.7%
Published
Sep 14, 2015
CISA due date
—
Cloudanix analysis
A parsing error in font handling can make certain graphics or virtualization software freeze when it encounters specially crafted font data, requiring a manual restart to recover.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The parse_encoding function in type1/t1load.c enters an infinite loop when processing a malformed "number-with-base" construct inside a Postscript stream, causing the process to hang and consume CPU.
Why it matters to the business
Applications that render or process Type-1 fonts become unresponsive, leading to service outages and degraded user experience until the affected process is restarted.
How an attack unfolds
An attacker supplies a crafted Postscript stream containing a broken number-with-base token to any code path that invokes the vulnerable FreeType parser; the parser loops indefinitely, denying service to legitimate users.
How to fix it
Upgrade virglrenderer to 0.6.0-2 on Ubuntu 18.04 LTS or 0.6.0-1 on Debian 11/12/13/14; rebuild and restart any dependent services after the package update.
How to confirm the fix worked
Confirm the installed package version matches or exceeds the listed fixed versions, then attempt to load a test font containing the previously crashing construct and verify the process terminates cleanly without looping.
Typical attack path
- Identify a network-accessible service that uses the vulnerable font parser to load Type-1 fonts
- Craft a malicious Postscript font stream embedding an invalid number-with-base sequence
- Deliver the stream via a supported input channel (file upload, network protocol, or document)
- Trigger font loading, causing the parser to enter an unrecoverable loop
How to detect it
Monitor process CPU usage and thread activity for sustained high utilization on services that parse Type-1 fonts; review application or system logs for repeated font-loading operations that never complete.
What your security team should do
- Apply the package upgrades immediately on all affected systems
- Inventory services that depend on virglrenderer and schedule restarts during the next maintenance window
- Add the fixed package versions to the organization's approved software baseline
The record
The parse_encoding function in type1/t1load.c in FreeType before 2.5.3 allows remote attackers to cause a denial of service (infinite loop) via a "broken number-with-base" in a Postscript stream, as demonstrated by 8#garbage.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | freetype | 0 | 2.6-1 |
| Debian:12 | freetype | 0 | 2.6-1 |
| Debian:13 | freetype | 0 | 2.6-1 |
| Debian:6.0 | freetype | 0 | 2.4.2-2.1+squeeze6 |
| Debian:7 | freetype | 0 | 2.4.9-1.1+deb7u2 |
| Debian:8 | freetype | 0 | 2.5.2-3+deb8u1 |
| SUSE:Linux Enterprise Server 11 SP4 | freetype2 | 0 | 2.3.7-25.41.4 |
| SUSE:Linux Enterprise Server 11 SP4 | ft2demos | 0 | 2.3.7-25.41.4 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | freetype2 | 0 | 2.3.7-25.41.4 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | ft2demos | 0 | 2.3.7-25.41.4 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | freetype2 | 0 | 2.3.7-25.41.4 |
| Ubuntu:14.04:LTS | freetype | 0 | 2.5.2-1ubuntu2.5 |
Related vulnerabilities
- 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-2017-8105 FreeType 2 before 2017-03-24 has an out-of-bounds write caused by a heap-based buffer… Also affects freetype
- CVE-2016-10244 The parse_charstrings function in type1/t1load.c in FreeType 2 before 2.7 does not ensure… Also affects freetype