Cyber Resilience

CVE-2025-66034

Fonttools 4.33.0 – 4.60.2

Public PoC
Published
29 November 2025
Modified
03 December 2025
Patch / advisory
CVSS Score v3.1 6.3
Click a component to see what it means
Raw vectorCVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L
EPSS Score 0.0055 44th percentile
Risk Priority 46 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2025-66034 is a medium-severity aka Blind XPath Injection (CWE-91) vulnerability in Fonttools Fonttools. Its CVSS base score is 6.3 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Content Injection (T1659); ranked at the 44th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2025-66034 is an arbitrary file write vulnerability in the fontTools Python library for manipulating fonts, affecting versions 4.33.0 through 4.60.1. The issue resides in the fonttools varLib script (invoked via python3 -m fontTools.varLib or fontTools.varLib.main()), which processes .designspace files. A malicious .designspace file can trigger the vulnerability in the main() code path, enabling arbitrary file writes that lead to remote code execution.

The vulnerability has a CVSS v3.1 base score of 6.3 (AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L) and is associated with CWE-91 (XML Injection). Exploitation requires local access and high attack complexity, with no privileges needed but user interaction required, such as tricking a user into running the varLib CLI on a crafted .designspace file. Successful exploitation allows an attacker to achieve remote code execution through arbitrary file writes, with high integrity impact, low availability impact, and changed scope.

The vulnerability has been patched in fontTools version 4.60.2. Security practitioners should upgrade to this version or later. Additional details are available in the GitHub security advisory (GHSA-768j-98cg-p3fv) and the patching commit (a696d5ba93270d5954f98e7cab5ddca8a02c1e32).

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

fontTools is a library for manipulating fonts, written in Python. In versions from 4.33.0 to before 4.60.2, the fonttools varLib (or python3 -m fontTools.varLib) script has an arbitrary file write vulnerability that leads to remote code execution when a malicious…

more

.designspace file is processed. The vulnerability affects the main() code path of fontTools.varLib, used by the fonttools varLib CLI and any code that invokes fontTools.varLib.main(). This issue has been patched in version 4.60.2.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1659 Content Injection Initial Access
Adversaries may gain access and continuously communicate with victims by injecting malicious content into systems through online network traffic.
T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2023-45139Same product: Fonttools Fonttools
CVE-2025-60833Shared CWE-91
CVE-2025-1545Shared CWE-91
CVE-2026-11169Shared CWE-91
CVE-2023-35858Shared CWE-91
CVE-2023-27328Shared CWE-91
CVE-2026-34601Shared CWE-91
CVE-2025-9375Shared CWE-91
CVE-2024-47113Shared CWE-91
CVE-2026-41675Shared CWE-91

Affected Assets

fonttools
fonttools
4.33.0 — 4.60.2

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

Input validation directly stops unneutralized XML metacharacters from reaching the parser.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC directly requires input neutralization and validation that eliminates XML injection flaws.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing catches XML injection during development but does not itself implement the fix.

A.8.15 Logging partial match
finds

Logging can record injection attempts for detection but does not prevent the weakness.

finds

Monitoring can detect exploitation but provides no preventive control over XML handling.

prevents

Secure SDLC mandates input validation and output encoding that directly prevent XML injection.

prevents

Application security requirements explicitly call for defenses against injection flaws including XML.

prevents

Secure architecture principles reduce attack surface but do not prescribe XML-specific controls.

References