Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach ZoneMinder web interface
-
DeliverySend request with malformed auth token
-
ExploitvalidateToken returns false, treated as present user
-
ExecutionRequest zones view with chosen monitor ID
-
ImpactDisclose 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Zoneminder
View allincludes/functions.php in ZoneMinder Video Server 1.24.0, 1.25.0, and earlier allows remote attackers to execute arbitra
ZoneMinder is a free, open source Closed-circuit television software application for Linux which supports IP, USB and An
ZoneMinder before 1.36.13 allows remote code execution via an invalid language. Rated critical severity (CVSS 9.8), this
Multiple directory traversal vulnerabilities in ZoneMinder 1.24.x before 1.24.4 allow remote attackers to read arbitrary
Information disclosure and authentication bypass vulnerability exists in the Apache HTTP Server configuration bundled wi
Command injection in ZoneMinder v1.36.34 video surveillance system via web/views/image.php. Unsanitized user input enabl
SQL injection vulnerability in Zoneminder 1.30 and earlier allows remote attackers to execute arbitrary SQL commands via
ZoneMinder is a free, open source closed-circuit television software application. Rated critical severity (CVSS 9.8), th
ZoneMinder is a free, open source Closed-circuit television software application for Linux which supports IP, USB and An
ZoneMinder before 1.32.3 has SQL Injection via the ajax/status.php filter[Query][terms][0][cnj] parameter. Rated critica
ZoneMinder before 1.32.3 has SQL Injection via the skins/classic/views/control.php groupSql parameter, as demonstrated b
daemonControl in includes/functions.php in ZoneMinder before 1.32.3 allows command injection via shell metacharacters. R
EUVD-2026-102423
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB