Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted TrueType font to target app
-
DeliveryApplication parses head table / glyph data
-
ExploitTrigger unitsPerEm=0 divide or NaN clip bypass
-
ExecutionOut-of-bounds read in draw_line() during sft_render()
-
ImpactProcess crashes (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Division safety checks
|
| Exploitation Conditions | Exploitation requires an application that links or embeds libschrift (<= 0.10.2) and calls sft_render() on attacker-influenced TrueType font data. Two concrete trigger conditions exist: (1) a font whose head table sets unitsPerEm = 0, causing a divide-by-zero; or (2) a font with NaN glyph coordinates that bypass clip_points(), causing an out-of-bounds raster read in draw_line(). Limiting factors: the CVSS vector is AV:L with UI:P (passive), so the malicious font must reach the local rendering context and be rendered by the victim application - there is no privileged access required (PR:N) but there is no self-propagating or fully unauthenticated-remote path; impact is confined to a crash of the rendering process (availability only). |
| Impact | This is a denial-of-service-only vulnerability with a confirmed availability-only impact (CVSS 4.0 6.8, VC:N/VI:N/VA:H; CWE-369 divide-by-zero plus a secondary NaN-driven out-of-bounds raster read). The vendor-supplied CVSS 4.0 vector specifies AV:L and UI:P, meaning exploitation is not remote-automatic: an attacker must get a crafted TrueType font in front of an application that uses libschrift, and a user (or process) must passively render it. There is no integrity or confidentiality impact and no code execution - the realistic worst case is a process crash. No EPSS score, no CISA KEV listing, and no explicit POC flag were provided in the input, so exploitation probability signals are absent rather than low; the VulnCheck advisory and the public hackmd technical write-up/GitHub issue indicate the root cause is well understood and reproducible, but no weaponized exploit is asserted. Net assessment: this is a genuine but low-priority issue - a medium-severity, DoS-only crash in a niche library - not a high-urgency threat. Note a mild signal tension: the library is local-processing (AV:L) yet fonts are frequently delivered over the network to the consuming application, so real-world exposure depends entirely on how the embedding application sources fonts; verify that deployment context before deprioritizing. |
| Exploit ScenarioDerived | An attacker crafts a malicious TrueType font whose head table sets unitsPerEm to 0 (triggering a divide-by-zero) or whose glyph coordinates are NaN (bypassing clip_points() and causing an out-of-bounds read in draw_line()). The attacker delivers this font to an application or service that renders it with libschrift via sft_render(); when the font is processed the process crashes, denying service. The root cause is publicly documented in a VulnCheck advisory and a hackmd write-up, but no packaged exploit code is indicated in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Crafted TrueType fonts crash applications that embed or link libschrift through 0.10.2, either by setting the head-table unitsPerEm field to 0 or by carrying NaN glyph coordinates that slip past clip_points() and force an out-of-bounds raster read in draw_line() during sft_render(). Exploitation requires no privileges (PR:N) but the malicious font must reach a local rendering context and actually be rendered by the victim application (CVSS 4.0 6.8, AV:L/UI:P; independent assessment: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H), so there is no self-propagating or fully unauthenticated remote path. Impact is availability only: the rendering process terminates, with no code execution, data disclosure, or integrity loss. Public exploit code has not been identified at time of analysis, although a public technical write-up describes the trigger conditions, and the issue is not listed in CISA KEV.
RemediationAI
No vendor-released patch identified at time of analysis: the upstream issue (https://github.com/tomolt/libschrift/issues/46) is the tracking point for a fix and no tagged release beyond 0.10.2 has been confirmed as remediated, so integrators should monitor that issue and the project's release tags rather than assuming a fixed build exists. Until a patched version ships, the most effective compensating control is to validate and reject untrusted fonts before they reach the renderer: parse the head table and refuse any font whose unitsPerEm is 0, and scan glyph coordinates for NaN/Inf values prior to calling sft_render(). The trade-off is that legitimate but nonconformant fonts with a zero em scale will also be blocked, so validation should be applied only to untrusted input paths and logged rather than silently dropped. Where font validation cannot be inserted, restrict sft_render() to a curated set of trusted fonts and keep untrusted font upload/render paths disabled - this removes the attack surface entirely but degrades any feature that depends on user-supplied typography. As a containment measure, run font rendering in a separate, unprivileged, sandboxed worker process with a restart supervisor so that a crash is absorbed rather than taking down the host application; this costs an extra process and IPC overhead and does not prevent the crash itself, only its blast radius. Because the CVSS 3.1 vector is AV:L/UI:R, reducing the set of users and services permitted to submit fonts into the local rendering pipeline (file permissions, upload allowlists, disabling font preview of remote content) meaningfully lowers exposure. Do not rely on generic network filtering, since there is no remote vector here.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libschrift is a small, dependency-light C library for rendering TrueType fonts, and the flaw lives in its TrueType parsing and rasterization pipeline. TrueType fonts declare their em scale in the 'head' table via the unitsPerEm field, which is used as a divisor when normalizing glyph coordinates; a font that sets unitsPerEm to 0 therefore produces a divide-by-zero (CWE-369), the root-cause class assigned to this CVE. A second, related trigger path exists in the same rendering flow: glyph coordinates expressed as NaN propagate through the point-clipping logic because NaN comparisons are always false, so clip_points() fails to reject the out-of-range geometry and draw_line() later performs an out-of-bounds raster read. Both paths are reachable during sft_render() - the vulnerable code is in schrift.c around line 542 and the clip/draw logic at lines 1422-1503 in the v0.10.2 tag. The CPE cpe:2.3:a:tomolt:libschrift:*:*:*:*:*:*:*:* indicates no version restriction, i.e. every release up to and including 0.10.2 is in scope, and the practical blast radius is any host application, viewer, or service that accepts untrusted font data and renders it through libschrift.
Know when Libschrift gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Malicious font is processed locally by the embedding app (AV:L) and must be rendered by the victim (UI:R); no privileges needed (PR:N); crash-only, so A:H with C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libschrift through 0.10.2 contains a divide by zero vulnerability that allows attackers to crash applications by supplying a font with unitsPerEm of 0 in the head table. Attackers can provide a crafted TrueType font whose NaN glyph coordinates bypass clip_points(), causing an out-of-bounds raster read in draw_line() during sft_render() and crashing the process.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-101233
GHSA-h8w2-cf8p-7p38
NVD
CVE.org
EPSS
Exploit-DB