CVE-2026-110648: @offactory/compress-fonts before 1.1.1 OS Command Injection via Font File Names

Published Oct 14, 2026
·
Updated

@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 childprocess.execSync, so shell metacharacters in file names execute commands with the Node.js process privileges.

Affected Software

1 affected component
npm/@offactory/compress-fonts<1.1.1

Event History

Oct 14, 2026
CVE Published
via MITRE·02:17 PM
Data Sourced
via MITRE·02:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who is exposed to this issue?

Applications using @offactory/compress-fonts before 1.1.1 are exposed when they process font files whose names can be influenced by an attacker. Commands run with the privileges of the Node.js process.

2

What does an attacker need to exploit it?

An attacker needs to supply a font file with a crafted filename containing shell metacharacters and cause the application to process that file. The issue is local in the supplied vector, but it requires no privileges and user interaction is required.

3

Are default deployments affected?

The available information does not identify a configuration prerequisite. The vulnerable behavior occurs when a font path is passed unquoted into a FontForge command through child_process.execSync.

4

How can I determine whether my application is affected?

Check whether it uses @offactory/compress-fonts at a version earlier than 1.1.1 and processes font files from attacker-influenced locations or uploads. Review whether those filenames can contain shell metacharacters before being passed to the package.

5

What can be done if upgrading is not immediately possible?

Do not process untrusted font filenames, and restrict accepted filenames to a safe character set that excludes shell metacharacters. Running the Node.js process with minimal privileges limits the privileges available to injected commands.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203