{"id":"CVE-2026-102607","aliases":["DEBIAN-CVE-2026-102607","EUVD-2026-103146","GHSA-7j62-cjxp-3cj5","UBUNTU-CVE-2026-102607"],"status":"published","title":"ZoneMinder: Authenticated OS Command Injection (RCE) via Export Feature","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","severity":{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00447,"percentile":0.39325,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-78"],"published":"2026-10-16T19:29:58Z","modified":"2026-11-11T09:39:20Z","exploits":[{"source":"pocgithub","id":"d4kw1n/CVE-2026-102607-ZoneMinder","title":"d4kw1n/CVE-2026-102607-ZoneMinder","date":"2026-03-11","url":"https://github.com/d4kw1n/CVE-2026-102607-ZoneMinder"}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.33+dfsg1-1","1.36.35+dfsg1-1","1.36.37+dfsg1-1","1.36.37+dfsg1-1.1"]},{"source":"osv","ecosystem":"Debian:13","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.35+dfsg1-1","1.36.37+dfsg1-1","1.36.37+dfsg1-1.1"]},{"source":"osv","ecosystem":"Debian:14","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.35+dfsg1-1","1.36.37+dfsg1-1","1.36.37+dfsg1-1.1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.28.1-8","1.29.0+dfsg-1","1.29.0+dfsg-1ubuntu1","1.29.0+dfsg-1ubuntu2","1.29.0+dfsg-1ubuntu2+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.7+dfsg1-1","1.36.10+dfsg1-1","1.36.11+dfsg1-1","1.36.12+dfsg1-1","1.36.12+dfsg1-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.33+dfsg1-1build1","1.36.33+dfsg1-1build2","1.36.33+dfsg1-1build3","1.36.33+dfsg1-1build4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.37+dfsg1-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"zoneminder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36.35+dfsg1-1","1.36.37+dfsg1-1"]}],"products":[{"vendor":"zoneminder","product":"zoneminder"}],"references":[{"url":"https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-7j62-cjxp-3cj5","tags":["x_refsource_CONFIRM","exploit","advisory","report"]},{"url":"https://github.com/ZoneMinder/zoneminder/commit/548ed87d47a49c17b4c842f6fee8a08660deb427","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/ZoneMinder/zoneminder/commit/605f962b7b6ba7f5780b3e6715b5418b8b2addca","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/ZoneMinder/zoneminder/releases/tag/1.38.3","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102607.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102607","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-102607","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-102607","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-102607","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-102607","title":"ZoneMinder: Authenticated OS Command Injection (RCE) via Export Feature","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T19:29:58.131Z","modified":"2026-10-19T14:26:23.072Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T13:38:54.394896Z"}],"euvd":[{"id":"EUVD-2026-103146","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T19:29:58Z","modified":"2026-10-19T14:26:23Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T16:59:51.186399Z"}],"nvd":[{"id":"CVE-2026-102607","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T20:17:17.097Z","modified":"2026-10-19T15:16:53.96Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:13:00.123071Z"}],"osv":[{"id":"CVE-2026-102607","title":"ZoneMinder: Authenticated OS Command Injection (RCE) via Export Feature","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T19:29:58.131Z","modified":"2026-11-09T10:45:15.936618509Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-78"],"updated_at":"2026-11-09T10:53:57.550641Z"},{"id":"DEBIAN-CVE-2026-102607","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T20:17:17.097Z","modified":"2026-10-23T17:47:22.195583295Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:48.903138Z"},{"id":"UBUNTU-CVE-2026-102607","description":"ZoneMinder is a free, open source closed-circuit television software application. Prior to 1.38.3, the exportEvents() function concatenates the attacker-controlled exportFile request parameter into a shell command without neutralizing shell metacharacters when an authenticated user with View Events or View Snapshots permission submits an event export request with a crafted exportFile value, a valid CSRF token, and exportDetail enabled. The affected components are exportEvents(), exportFile, web/ajax/event.php, web/skins/classic/includes/export_functions.php. In this attack mechanism, the crafted exportFile value reaches the trailing directory argument of a tar or zip command executed by exec(). The attacker can execute arbitrary operating system commands as the web server user. This issue is fixed in version 1.38.3.","status":"published","published":"2026-10-16T20:17:00Z","modified":"2026-11-11T09:39:20.630616824Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-11T10:01:17.454745Z"}]}}
