CVE-2017-13720
High · 7.1CVSS
7.1
EPSS
0.4%
Published
Oct 11, 2017
CISA due date
—
Cloudanix analysis
A flaw in how font names are matched can let someone who already has graphical access peek at private memory or crash display-related programs.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer over-read in the PatternMatch function caused by incorrect handling of '\0' characters when pattern matching involves '?' wildcards, allowing memory contents to be read past intended bounds or triggering a crash.
Why it matters to the business
X font services may leak sensitive memory contents or become unavailable, disrupting graphical applications and increasing operational recovery effort; the issue affects packages such as opa-fips where the vulnerable library is embedded.
How an attack unfolds
An attacker establishes a local X connection and supplies a crafted font pattern containing '?' characters that forces the library to skip null terminators during matching, resulting in an over-read that either discloses memory or crashes the process.
How to fix it
Upgrade affected packages to the versions that contain the corrected libXfont code; for opa-fips (Chainguard) this means version 0.65.0-r1 or later. Remove or isolate systems that cannot be updated until patches are applied.
How to confirm the fix worked
Verify the installed package version matches or exceeds the fixed release, recompile or relink any statically built components that embed libXfont, and confirm that font pattern requests no longer produce crashes or unexpected memory reads in test environments.
Typical attack path
- Obtain local access or a valid X connection on the target system
- Craft a font directory pattern containing '?' wildcards designed to trigger null-byte skipping
- Submit the pattern through the X font protocol to the vulnerable libXfont instance
- Observe resulting memory disclosure or service crash
How to detect it
Review X server and application logs for segmentation faults or abnormal font loading errors; correlate process crashes of X font utilities with user sessions that have direct X access; examine core dumps for patterns consistent with font directory buffer reads.
What your security team should do
- Prioritize patching opa-fips (Chainguard) to 0.65.0-r1 within standard change windows given the 2017 disclosure date and low exploitation signals
- Inventory all systems using X font libraries and schedule upgrades before the next maintenance cycle
- Disable unnecessary X font services on headless systems to reduce attack surface
- Add version checks for libXfont to continuous compliance scanning
The record
In the PatternMatch function in fontfile/fontdir.c in libXfont through 1.5.2 and 2.x before 2.0.2, an attacker with access to an X connection can cause a buffer over-read during pattern matching of fonts, leading to information disclosure or a crash (denial of service). This occurs because '\0' characters are incorrectly skipped in situations involving ? characters.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libxfont | 0 | 1:2.0.1-4 |
| Debian:12 | libxfont | 0 | 1:2.0.1-4 |
| Debian:13 | libxfont | 0 | 1:2.0.1-4 |
| Debian:7 | libxfont | 0 | 1:1.4.5-5+deb7u1 |
| Debian:8 | libxfont | 0 | 1:1.5.1-1+deb8u1 |
| Debian:9 | libxfont | 0 | 1:2.0.1-3+deb9u1 |
| Mageia:5 | libxfont | 0 | 1.5.1-1.1.mga5 |
| Mageia:6 | libxfont | 0 | 1.5.2-1.1.mga6 |
| Mageia:6 | libxfont2 | 0 | 2.0.1-4.1.mga6 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Desktop 12 SP3 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Server 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.50.5.3 |
| SUSE:Linux Enterprise Server 12 SP2 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Server 12 SP3 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.50.5.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | xorg-x11-libs | 0 | 7.4-8.26.50.5.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libXfont | 0 | 1.5.1-11.3.12 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | libXfont | 0 | 1.5.1-11.3.12 |
| Ubuntu:14.04:LTS | libxfont | 0 | 1:1.4.7-1ubuntu0.3 |
| Ubuntu:16.04:LTS | libxfont | 0 | 1:1.5.1-1ubuntu0.16.04.3 |
| Ubuntu:16.04:LTS | libxfont2 | 0 | 1:2.0.1-3~ubuntu16.04.2 |
| openSUSE:Tumbleweed | libXfont | 0 | 1.5.4-2.18 |
Related vulnerabilities
- CVE-2017-16611 In libXfont before 1.5.4 and libXfont2 before 2.0.3, a local attacker can open (but not… Also affects libxfont
- CVE-2015-1802 The bdfReadProperties function in bitmap/bdfread.c in X.Org libXfont before 1.4.9 and… Also affects libxfont
- CVE-2014-0209 Multiple integer overflows in the (1) FontFileAddEntry and (2) lexAlias functions in… Also affects libxfont
- CVE-2013-6462 Stack-based buffer overflow in the bdfReadCharacters function in bitmap/bdfread.c in… Also affects libxfont
- CVE-2017-16612 libXcursor before 1.1.15 has various integer overflows that could lead to heap buffer… Also affects xorg-x11-libs
- CVE-2016-7947 Multiple integer overflows in X.org libXrandr before 1.5.1 allow remote X servers to… Also affects xorg-x11-libs
- CVE-2016-7945 Multiple integer overflows in X.org libXi before 1.7.7 allow remote X servers to cause a… Also affects xorg-x11-libs
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125