Stills: OS command injection via crafted media file names
Summary
The npm library stills before 25.24.2 contains an OS command injection flaw in how it handles media file names. An attacker who can create a media file whose name contains $(...) or backticks can execute operating system commands with the privileges of the Node.js process when ffmpeg, ffprobe, gifsicle or convert runs. The CNA rates the issue 9.3 (Critical) under CVSS 4.0 and no authentication is required, but exposure depends on whether a service built on stills processes files that outside parties can place.
Affected
- stills 0 to before 25.24.2 (CNA range)
- VulDB additionally lists 25.24.0 and 25.24.1 as affected
- Default configuration: unaffected (per CNA)
Fixed in
- Upgrade to stills 25.24.2 or later
- 25.24.1 is incomplete and must be treated as vulnerable
Workaround
- No vendor workaround documented; the vendor's stated mitigation is to upgrade to 25.24.2
- Do not pass untrusted media files to stills
- Restrict write access to media and sync folders
Exploitation
- CISA SSVC: exploitation none, automatable yes, technical impact total
- No evidence of in-the-wild exploitation found; CISA KEV status unverified
- No public exploit found (VulDB: no available exploit)
Our recommendation
- Run npm ls stills across all projects and Node applications and check for versions below 25.24.2
- Upgrade to 25.24.2 or later and verify that no 25.24.1 installs remain
- Prioritise high if the library runs in an internet-facing upload pipeline, medium if only trusted internal media is processed
- Limit write access to processed media folders and run the process with least privilege or in a container
- Monitor for unexpected child processes spawned by Node.js
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- VulnCheck advisory: Stills before 25.24.2 OS Command Injection via Media File Names www.vulncheck.com
- GitHub pull request #30 (stills) github.com
- Fix commit 51ba953 github.com
- Fix commit 5694b3b github.com
- VulDB entry 419993 vuldb.com
- OSV entry CVE-2026-110649 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 02:02.
Original description (NVD)
Stills before 25.24.2 contains an OS command injection vulnerability that allows attackers to execute shell commands by supplying crafted media file paths. Attackers can name a media file with $(...) or backticks to execute operating system commands with Node.js process privileges when ffmpeg, ffprobe, gifsicle, or convert runs.
NVD references (7)
- https://github.com/shahkashani/stills/blob/66d5def1265b817d84524473a2813e4781dcbd80/lib/content/video.js#L58-…
- https://github.com/shahkashani/stills/blob/66d5def1265b817d84524473a2813e4781dcbd80/lib/stills/frames.js#L106…
- https://github.com/shahkashani/stills/commit/51ba953983ba99915331607bf8530e6089952253
- https://github.com/shahkashani/stills/commit/5694b3b0dcd2da342f4f0497244129d4c9eb73bc
- https://github.com/shahkashani/stills/pull/29
- https://github.com/shahkashani/stills/pull/30
- https://www.vulncheck.com/advisories/stills-before-25.24.2-os-command-injection-via-media-file-names
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
