Skip to main content

ZoneMinder CVE-2026-104198

| EUVDEUVD-2026-102423 MEDIUM
Improper Authentication (CWE-287)
2026-10-15 GitHub_M
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach ZoneMinder web interface
  2. Delivery
    Send request with malformed auth token
  3. Exploit
    validateToken returns false, treated as present user
  4. Execution
    Request zones view with chosen monitor ID
  5. Impact
    Disclose monitor and zone metadata

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that ZoneMinder authentication is enabled (ZM_OPT_USE_AUTH on) and that token-based authentication is in use, on an affected version 1.34.0 through 1.36.38. The attacker must submit a token that fails validation (malformed or invalid signature) so that validateToken() returns boolean false, which index.php's isset($user) check then treats as a logged-in user, allowing dispatch of the zones view against an attacker-selected monitor ID. Limiting factors: impact is restricted to disclosure of monitor and zone metadata - privileged/state-changing operations remain blocked because permission helpers reject the false $user value; the web interface must be network-reachable by the attacker; and instances on 1.36.63 or later, or with authentication disabled in a way that changes this path, are not affected as described.

Impact

This is a genuine but limited-impact information-disclosure flaw, not a high-urgency priority. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, base 5.3 Medium) is internally consistent with the description: a remote, unauthenticated attacker can reach the vulnerable path over the network with low complexity and no user interaction, but impact is confined to low confidentiality (C:L) with no integrity or availability impact (I:N/A:N). The description itself constrains the risk - it explicitly states that permission helpers receive the false $user value and deny privileged operations, so unauthorized state changes have NOT been established; the realistic worst case is disclosure of monitor and zone metadata via the zones view. No EPSS score, CISA KEV listing, or public POC was provided in the input, so exploitation likelihood cannot be quantified from the data; the exploitation signal is therefore 'no public exploit identified at time of analysis.' No conflicting signals were observed - CVSS network vector and the description's web-interface mechanism agree. Overall: patch opportunistically on internet-exposed instances, but this does not rise to an emergency given metadata-only disclosure and absence of exploitation evidence.

Exploit ScenarioDerived

An attacker who can reach a ZoneMinder web interface (versions 1.34.0-1.36.38) with authentication enabled submits a request carrying a malformed or invalid-signature authentication token. Because validateToken() returns boolean false and index.php only checks isset($user), the login redirect is skipped and the attacker reaches the zones view, supplying an arbitrary monitor ID to read monitor and zone metadata without a valid session. No public exploit code was identified in the provided data, though the logic flaw is trivially triggerable given the detailed advisory and commit diffs.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Improper authentication handling in ZoneMinder 1.34.0 through 1.36.38 lets remote unauthenticated attackers bypass the login redirect and read monitor and zone metadata through the zones view by submitting a malformed or invalidly signed token. The impact is limited to information disclosure-privileged and state-changing operations remain blocked because permission helpers reject the boolean false user value-and no public exploit code has been identified at time of analysis. Exploitation requires ZM_OPT_USE_AUTH to be enabled, token-based authentication in use, and the web interface to be network-reachable; vendor-released patch: 1.36.63.

RemediationAI

Upgrade to ZoneMinder 1.36.63 or later, the vendor-released patch, which converts users to ZM\User objects and causes invalid token state to fail before view dispatch; the referenced commits, such as 144a04ca4fff5fd02745ce8afc239ba5e05cf8ac, additionally leave $user unset after failed token validation. Consult the GitHub advisory GHSA-23fj-frfw-hmcr for the authoritative upgrade guidance. If immediate upgrade is not possible, reduce exposure by restricting network access to the ZoneMinder web interface through a reverse proxy with its own authentication, IP allowlisting, or a VPN-accepting that this can break external integrations, remote viewers, and mobile clients. Disabling ZM_OPT_USE_AUTH is not a safe workaround because it removes authentication for the entire application rather than fixing the token-handling gap, and monitoring for malformed-token submissions against the zones endpoint can provide early warning, though it does not prevent disclosure.

Affected VersionsENISA

zoneminder 1.34.0, < 1.36.63

Affected Packages

euvd zoneminder fix: 1.36.63

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZoneMinder is a PHP-based CCTV application. Its web authentication gate in web/index.php decides whether to redirect an unauthenticated visitor to the login page by testing isset($user). In web/includes/auth.php, validateToken() returns boolean false when a token is malformed or has an invalid signature, but the caller assigns that false value to the global $user variable. Because PHP's isset() returns true for a variable that holds false (so long as it is not null or unset), the gate treats the request as authenticated and dispatches views that rely only on the outer gate-notably the zones view, which accepts an attacker-selected monitor ID and discloses monitor and zone metadata without an independent permission check. CWE-287 (Improper Authentication) captures the root cause. Version 1.36.63 converts users to ZM\User objects so invalid token state fails before view dispatch; later defense-in-depth changes explicitly leave $user unset after failed token validation and reject non-ZM\User values at the web authentication gate.

Know when Zoneminder gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

Remote unauthenticated web request with no interaction (AV:N/AC:L/PR:N/UI:N); only monitor/zone metadata leaks (C:L) with no integrity or availability impact since state changes stay blocked.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 21:03 EUVD

DescriptionCVE.org

ZoneMinder is a free, open source closed-circuit television software application. In versions 1.34.0 through 1.36.38, the web interface mishandles failed token authentication in web/includes/auth.php. validateToken() returns false when a token is malformed or has an invalid signature, but the caller assigns that value to the global $user variable; because web/index.php tests isset($user), boolean false is treated as a present user and the normal login redirect is skipped. This can dispatch views that rely on the outer authentication gate, including the zones view, which accepts an attacker-selected monitor ID and discloses monitor and zone metadata without an independent permission check. Permission helpers receive the false user value and deny privileged operations, so unauthorized state changes have not been established. This vulnerability is fixed in version 1.36.63, where conversion to ZM\User objects causes invalid token state to fail before view dispatch. Later defense-in-depth changes explicitly leave $user unset after failed token validation and reject non-ZM\User values at the web authentication gate.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Low
niche open-source CCTV/NVR software, mostly home and small-business deployments
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2013-0232 HIGH POC
7.5 Mar 20

includes/functions.php in ZoneMinder Video Server 1.24.0, 1.25.0, and earlier allows remote attackers to execute arbitra

CVE-2023-26035 CRITICAL POC
9.8 Feb 25

ZoneMinder is a free, open source Closed-circuit television software application for Linux which supports IP, USB and An

CVE-2022-29806 CRITICAL POC
9.8 Apr 26

ZoneMinder before 1.36.13 allows remote code execution via an invalid language. Rated critical severity (CVSS 9.8), this

CVE-2013-0332 MEDIUM POC
5.0 Mar 20

Multiple directory traversal vulnerabilities in ZoneMinder 1.24.x before 1.24.4 allow remote attackers to read arbitrary

CVE-2016-10140 HIGH
7.5 Jan 13

Information disclosure and authentication bypass vulnerability exists in the Apache HTTP Server configuration bundled wi

CVE-2025-65791 CRITICAL POC
9.8 Feb 18

Command injection in ZoneMinder v1.36.34 video surveillance system via web/views/image.php. Unsanitized user input enabl

CVE-2016-10204 CRITICAL POC
9.8 Mar 03

SQL injection vulnerability in Zoneminder 1.30 and earlier allows remote attackers to execute arbitrary SQL commands via

CVE-2024-43360 CRITICAL POC
9.8 Aug 12

ZoneMinder is a free, open source closed-circuit television software application. Rated critical severity (CVSS 9.8), th

CVE-2023-26036 CRITICAL POC
9.8 Feb 25

ZoneMinder is a free, open source Closed-circuit television software application for Linux which supports IP, USB and An

CVE-2019-8429 CRITICAL POC
9.8 Feb 18

ZoneMinder before 1.32.3 has SQL Injection via the ajax/status.php filter[Query][terms][0][cnj] parameter. Rated critica

CVE-2019-8428 CRITICAL POC
9.8 Feb 18

ZoneMinder before 1.32.3 has SQL Injection via the skins/classic/views/control.php groupSql parameter, as demonstrated b

CVE-2019-8427 CRITICAL POC
9.8 Feb 18

daemonControl in includes/functions.php in ZoneMinder before 1.32.3 allows command injection via shell metacharacters. R

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy