whisper-node through version 1.1.1 has a critical OS command injection flaw (CVSS 3.1 9.8): crafted input passed to whisper() can run arbitrary commands with the privileges of the Node.js process.
What Is It
CVE-2026-110640 is an OS command injection vulnerability (CWE-78) in whisper-node, an npm package maintained under the ariym GitHub account. The whisper() function accepts a filePath value and a whisperOptions.language value. Both are placed into a command string built by createCppCommand(), which is then run through shelljs exec(). The input is not handled safely, so an attacker can add shell metacharacters or $() command substitution to either parameter and run their own commands.
VulnCheck reported the issue, and NVD published it on 2026-10-14. Its NVD status is "Received."
Why It Matters
VulnCheck scores this as 9.8 CRITICAL under CVSS 3.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) and 9.3 CRITICAL under CVSS 4.0. The vector describes a network-reachable attack with low complexity that needs no privileges or user interaction. A successful attack fully compromises confidentiality, integrity and availability.
Injected commands run with the Node.js process's privileges. Any application that passes user-controlled file paths or language settings into whisper() gives an attacker a direct path to code execution on the host.
Exploitation status: This CVE is not in the CISA Known Exploited Vulnerabilities (KEV) catalog, and the supplied data does not confirm active exploitation.
What's Vulnerable
- Package:
whisper-node(pkg:npm/whisper-node) - Vendor/Repo: ariym, https://github.com/ariym/whisper-node
- Affected versions: all versions from 0 through 1.1.1 (semver)
- Vulnerable path:
whisper()→createCppCommand()→ shelljsexec() - Attacker-controlled inputs:
filePath,whisperOptions.language
Patch Status
The supplied advisory data does not name a fixed version. The references include a GitHub pull request (#64) on the whisper-node repository, but the data does not say whether it has been merged or released. There is no CISA KEV required action or due date because the CVE is not in KEV.
Until a fixed release is confirmed, teams using whisper-node should:
- Inventory their dependencies for
whisper-node≤ 1.1.1. - Make sure untrusted input never reaches
filePathorwhisperOptions.language. - Watch the upstream repository and the VulnCheck advisory for a patched version.