---
id: CVE-2026-30971
title: >-
  ZoneMinder is a free, open source closed-circuit television software
  application
summary: >-
  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…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-78
vendor: ZoneMinder
product: zoneminder
affected:
  - zoneminder < 1.36.40
  - 'zoneminder >= 1.38.0, < 1.38.2'
  - 'zoneminder >= 1.39.0, < 1.39.2'
published: '2026-10-16'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T20:17:23.320'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-30971'
references:
  - url: >-
      https://github.com/ZoneMinder/zoneminder/commit/419846c8750c3f45b9b8a1df8cd49c189a14dc03
    label: security-advisories@github.com
  - url: >-
      https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-g66m-77fq-79v9
    label: security-advisories@github.com
  - url: >-
      https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-g66m-77fq-79v9
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
epss: 0.01065
epssPercentile: 0.64511
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T19:56:46.321699Z'
ingestedAt: '2026-10-16T20:51:40.023Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
