ZoneMinder: OS command injection via monitor Device Path
Summary
ZoneMinder, an open source video surveillance application, uses the Device Path of Local monitors in shell commands in PHP and Perl code without proper validation. An authenticated user with permission to create or edit monitors can save a crafted Device Path that is executed when the monitor is controlled or started. Successful exploitation allows arbitrary commands to be run as the web server user. The CVSS base score is 8.8 (High).
Affected
- ZoneMinder before 1.36.40
- ZoneMinder 1.38.0 to before 1.38.2
- ZoneMinder 1.39.0 to before 1.39.2
Fixed in
- 1.36.40
- 1.38.2
- 1.39.2
The GitHub release notes list the fix under 1.38.3. Installing the latest release of your branch covers both.
Workaround
- No vendor workaround known. Patching is the primary measure.
- Restrict access to the ZoneMinder web interface to trusted networks or a VPN.
- Review which accounts hold monitor create and edit rights and remove unneeded rights.
Exploitation
- No in-the-wild exploitation found.
- No public PoC found in our research. The CISA SSVC assessment lists exploitation as 'poc', and the advisory describes reproduction steps.
- CISA SSVC: not automatable.
Our recommendation
- Update ZoneMinder to the fixed versions or the latest release of your branch.
- Do not publish the web interface on the internet; restrict it to trusted networks or a VPN.
- Limit monitor create and edit rights to required accounts.
- After patching, check existing Local monitors for Device Paths containing unexpected characters.
- Monitor the system for unexpected processes started by the web server user.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-g66m-77fq-79v9 github.com
- GitHub fix commit 419846c8750c3f45b9b8a1df8cd49c189a14dc03 github.com
- SecurityFocus CVE-2026-30971 www.securityfocus.com
- Ubuntu CVE-2026-30971 ubuntu.com
- Debian Security Tracker: zoneminder security-tracker.debian.org
- VulDB CVE-2026-30971 vuldb.com
- FreshPorts: zoneminder www.freshports.org
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, 15:56.
Original description (NVD)
ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.39.2, 1.38.2, and 1.36.40, ZoneMinder interpolates an unvalidated monitor Device field into shell commands in PHP and Perl control paths when an authenticated user with monitor-create or monitor-edit permission saves a Local monitor whose Device Path contains shell metacharacters and the monitor control or startup path runs. In this attack mechanism, the stored Device value reaches Perl qx() and backtick execution before zmdc.pl argument detainting, while separate PHP command paths use bypassable escapeshellcmd defenses. The attacker can execute arbitrary commands as the web server user. This vulnerability is fixed in 1.39.2, 1.38.2, and 1.36.40.
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.
