CVE-2026-110648
7.8HighPublished 14 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
- Impact
- Full C/I/A compromise
- Weakness
- CWE-78
Impact
Attackers can execute arbitrary shell commands with the privileges of the Node.js process. They need a user or service to process a font file with a malicious name.
Root cause
Font file paths are interpolated unquoted into a FontForge command executed via child_process.execSync.
Affected systems
@offactory/compress-fonts before 1.1.1
CVSS v3.1 · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Fix & remediation
Upgrade @offactory/compress-fonts to version 1.1.1 or later. If patching immediately is not possible, sanitize font file names to strip shell metacharacters before processing.
$ npm install @offactory/compress-fonts@^1.1.1AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
@offactory/compress-fonts before 1.1.1 contains an OS command injection vulnerability that allows attackers to execute shell commands by supplying font files with crafted names. Font paths are interpolated unquoted into a FontForge command run through child_process.execSync, so shell metacharacters in file names execute commands with the Node.js process privileges.
References
- https://github.com/adamarcanov/compress-fonts/blob/7b07d20b3125a7bba8f933eeca21f5a09c8fb62a/index.js#L48
- https://github.com/adamarcanov/compress-fonts/commit/12002e5866af2163cd34424baae5a53338951a5d
- https://github.com/adamarcanov/compress-fonts/pull/1
- https://www.vulncheck.com/advisories/offactory-compress-fonts-before-1.1.1-os-command-injection-via-font-file-names