CVE-2025-66034
Public on
Last Modified:
Description
This vulnerability in fontTools varLib allows a crafted .designspace file to trigger arbitrary file writes and XML-based content injection during variable-font generation. Because filenames are not sanitized, an attacker can use path traversal to overwrite files anywhere on the filesystem, and malicious payloads embedded in XML labelname elements can be injected directly into the generated output. When these overwritten files reside in executable or web-served locations, this can enable local remote-code execution or corruption of application or configuration files. The issue affects the varLib CLI and any code that invokes fontTools.varLib.main().
Statement
This issue is rated Moderate rather than Important because the exploitability hinges on several limiting technical factors despite the high integrity impact. The arbitrary file-write and XML-injection pathways are only reachable when a user or automated workflow locally processes a malicious .designspace file, giving the flaw a local attack vector (AV:L) and requiring explicit user interaction (UI:R)—meaning an attacker cannot trigger it remotely over the network. The attack also involves high complexity (AC:H), as it depends on crafted designspace structures, controlled font sources, and specific invocation of fonttools varLib or code that directly calls varLib.main(). Additionally, the vulnerability does not expose confidentiality, and availability effects are limited to potential file corruption. These constraints significantly narrow real-world exposure, keeping the risk profile in the Moderate range despite the possibility of high local integrity impact when exploited.
Mitigation
To mitigate this issue, avoid processing untrusted .designspace files with the fontTools varLib script or any application that invokes fontTools.varLib.main(). Restrict the execution environment of processes handling .designspace files to minimize potential impact from arbitrary file writes. If the fonttools package is not required, consider removing it.
Additional Information
- This content is not included.Bugzilla 2417780: fonttools: fontTools: Arbitrary file write leading to remote code execution via malicious .designspace file
- Content from cwe.mitre.org is not included.CWE-91: XML Injection (aka Blind XPath Injection)
- FAQ: Frequently asked questions about CVE-2025-66034
- Offline Security Data data is available for integration with other systems. See Offline Security Data API to get started.
External References
Content from www.cve.org is not included.https://www.cve.org/CVERecord?id=CVE-2025-66034
Content from nvd.nist.gov is not included.https://nvd.nist.gov/vuln/detail/CVE-2025-66034
Affected Packages and Issued Red Hat Security Errata
| Products / Services | Components | State | Errata |
|---|---|---|---|
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-tech-preview/automation-dashboard-rhel9 | Fix deferred | |
| Red Hat Enterprise Linux 7 | fonttools | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-amd-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-aws-nvidia-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-azure-amd-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-azure-nvidia-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-gcp-nvidia-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-intel-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/bootc-nvidia-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/instructlab-amd-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/instructlab-intel-rhel9 | Out of support scope | |
| Red Hat Enterprise Linux AI (RHEL AI) | rhelai1/instructlab-nvidia-rhel9 | Out of support scope | |
| Red Hat OpenShift AI 2.25 | rhoai/odh-kserve-agent-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-kserve-controller-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-kserve-router-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-kserve-storage-initializer-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-llama-stack-core-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-pytorch-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-pytorch-rocm-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-tensorflow-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-pipeline-runtime-tensorflow-rocm-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-pytorch-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-pytorch-rocm-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-tensorflow-cuda-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-tensorflow-rocm-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-workbench-jupyter-trustyai-cpu-py312-rhel9 | Fixed | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-openvino-model-server-rhel9 | Fixed | RHSA-2026:2695 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-kserve-agent-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-kserve-controller-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-kserve-router-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-kserve-storage-initializer-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-llama-stack-core-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-openvino-model-server-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-pytorch-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-pytorch-llmcompressor-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-pytorch-rocm-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-tensorflow-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-pipeline-runtime-tensorflow-rocm-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-datascience-cpu-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-pytorch-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-pytorch-rocm-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-tensorflow-cuda-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-tensorflow-rocm-py312-rhel9 | Fixed | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-workbench-jupyter-trustyai-cpu-py312-rhel9 | Fixed | RHSA-2026:3713 |
Common Vulnerability Scoring System (CVSS) Score Details
Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authorities (CNA) source for its products and services (see Red Hat classifications ).
| CVSS v3 Score Breakdown | Red Hat | NVD |
|---|---|---|
| CVSS v3 Base Score | 6.3 | 9.8 |
| Attack Vector | Local | Network |
| Attack Complexity | High | Low |
| Privileges Required | None | None |
| User Interaction | Required | None |
| Scope | Changed | Unchanged |
| Confidentiality Impact | None | High |
| Integrity Impact | High | High |
| Availability Impact | Low | High |
CVSS v3 Vector
Red Hat CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L
NVD CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Frequently Asked Questions
Why is Red Hat's CVSS v3 score or Impact different from other vendors?
For more information, see https://access.redhat.com/solutions/762393.
My product is listed as "Under investigation" or "Affected", when will Red Hat release a fix for this vulnerability?
- "Under investigation" doesn't necessarily mean that the product is affected by this vulnerability. It only means that our Analysis Team is still working on determining whether the product is affected and how it is affected.
- "Affected" means that our Analysis Team has determined that this product is affected by this vulnerability and might release a fix to address this in the near future.
What can I do if my product is listed as "Will not fix"?
Available options depend mostly on the Impact of the vulnerability and the current Life Cycle phase of your product. Overall, you have the following options:
- Upgrade to a supported product version that includes a fix for this vulnerability (recommended).
- Apply a mitigation (if one exists).
- Open a This content is not included.support case to request a prioritization of releasing a fix for this vulnerability.
What can I do if my product is listed as "Fix deferred"?
Available options depend mostly on the Impact of the vulnerability and the current Life Cycle phase of your product. Overall, you have the following options:
- Apply a mitigation (if one exists).
- Open a This content is not included.support case to request a prioritization of releasing a fix for this vulnerability.
- Red Hat Engineering focuses on addressing high-priority issues based on their complexity or limited lifecycle support. Therefore, lower-priority issues will not receive immediate fixes.
What is a mitigation?
I have a Red Hat product but it is not in the above list, is it affected?
Why is my security scanner reporting my product as vulnerable to this vulnerability even though my product version is fixed or not affected?
My product is listed as "Out of Support Scope". What does this mean?
Not sure what something means? Check out our Security Glossary.