Skip to main content

libschrift CVE-2026-110605

| EUVDEUVD-2026-101233 MEDIUM
Divide By Zero (CWE-369)
2026-10-14 VulnCheck GHSA-h8w2-cf8p-7p38
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted TrueType font to target app
  2. Delivery
    Application parses head table / glyph data
  3. Exploit
    Trigger unitsPerEm=0 divide or NaN clip bypass
  4. Execution
    Out-of-bounds read in draw_line() during sft_render()
  5. Impact
    Process 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

libschrift 0 ≤0.10.2

Affected Packages

euvd libschrift no fix

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

Vendor (VulnCheck) PRIMARY 6.8 MEDIUM
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
vuln.today AI 5.5 MEDIUM

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche suckless-style lightweight TrueType library, limited production footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy