CVE-2017-11568
High · 7.8CVSS
7.8
EPSS
1.4%
Published
Jul 23, 2017
CISA due date
—
Cloudanix analysis
A font design program can be made to crash or run attacker code when it opens a specially made font file, putting any computer that handles untrusted fonts at risk.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer over-read in PSCharStringToSplines (psread.c) when parsing PostScript charstrings inside OpenType fonts, allowing out-of-bounds memory access that can result in denial of service or arbitrary code execution.
Why it matters to the business
Systems or workflows that render or edit fonts (design tools, document processors, build pipelines) can be crashed or compromised by a single malicious font file, leading to downtime, data loss, or full machine takeover in environments that handle untrusted fonts.
How an attack unfolds
An attacker crafts an OpenType font containing a malformed PostScript charstring, delivers the file to a victim, and waits for the victim to open the file in FontForge; the parser then performs an out-of-bounds read that can be leveraged for code execution.
How to fix it
Upgrade FontForge to a version released after 20161012 that contains the bounds check fix; if an upgrade path is unavailable, isolate FontForge from untrusted fonts and replace it with a maintained alternative in any automated pipelines.
How to confirm the fix worked
Confirm FontForge version is newer than 20161012; test by opening a known-good crafted OTF sample in a sandboxed instance and verify the process does not crash or exhibit abnormal memory access.
Typical attack path
- Craft malicious OTF file with oversized or malformed PostScript charstring
- Host or email the file to the target environment
- Victim opens the file directly in FontForge or via an automated font-processing workflow
- PSCharStringToSplines reads beyond allocated buffer
- Attacker-controlled data influences control flow or causes crash
How to detect it
Search application and system logs for FontForge crashes or segmentation faults triggered by OTF file opens; inspect process memory dumps for evidence of out-of-bounds reads during PSCharStringToSplines calls.
- FontForge process crash on OTF open
- psread.c:PSCharStringToSplines in stack trace
- heap buffer over-read in font parsing
What your security team should do
- Immediately block or sandbox any use of FontForge on untrusted font files
- Replace FontForge in build and CI systems with a current, supported font tool
- Add file-type sandboxing or conversion steps before any font reaches FontForge
- Monitor EPSS trend and re-evaluate if exploit code appears
The record
FontForge 20161012 is vulnerable to a heap-based buffer over-read in PSCharStringToSplines (psread.c) resulting in DoS or code execution via a crafted otf file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | fontforge | 0 | 1:20170731~dfsg-1 |
| Debian:12 | fontforge | 0 | 1:20170731~dfsg-1 |
| Debian:13 | fontforge | 0 | 1:20170731~dfsg-1 |
| Debian:7 | fontforge | 0 | 0.0.20120101+git-2+deb7u1 |
| Debian:8 | fontforge | 0 | 20120731.b-5+deb8u1 |
| Debian:9 | fontforge | 0 | 1:20161005~dfsg-4+deb9u1 |
| Mageia:5 | fontforge | 0 | 1.0-1.20120731.10.mga5 |
| Mageia:6 | fontforge | 0 | 20161012-4.1.mga6 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | fontforge | 0 | 20170731-11.8.1 |
| Ubuntu:14.04:LTS | fontforge | 0 | 20120731.b-5ubuntu0.1 |
| Ubuntu:16.04:LTS | fontforge | 0 | 20120731.b-7.1ubuntu0.1 |
| Ubuntu:18.04:LTS | fontforge | 0 | 1:20170731~dfsg-1 |
Related vulnerabilities
- CVE-2010-4259 Stack-based buffer overflow in FontForge 20100501 allows remote attackers to cause a… Also affects fontforge
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125
- CVE-2026-114038 A flaw was found in device-mapper-multipath. CWE-125
- CVE-2026-112896 Pillow is a Python imaging library. CWE-125
- CVE-2026-112278 rdesktop through 1.9.0 contains a heap out-of-bounds read vulnerability in… CWE-125
- CVE-2026-112273 libtins through 4.6 contains a heap out-of-bounds read vulnerability in DNS::compose_name… CWE-125
- CVE-2026-112073 A vulnerability was identified in Tencent ncnn up to 44b02dabdcf97499281a4692ebd65bad73dc… CWE-125
- CVE-2026-112020 LodePNG through 20261006 contains a heap out-of-bounds read vulnerability in… CWE-125