# CVE-2026-104198: ZoneMinder authentication bypass in token validation

Source: https://junglewise.ai/threats/cve-2026-104198-zoneminder-is-a-free-open-source-closed-circuit-television  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-15. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-104198 · Severity: medium · CVSS 5.3 · Published 2026-10-15

ZoneMinder is open-source video surveillance software that controls security cameras and recording. A flaw in authentication token validation allows an attacker to access camera zones and view sensitive metadata about monitors without logging in. The vulnerability requires a malformed authentication token but does not permit unauthorized actions like changing recordings or system settings.

Technologies: [Zoneminder](https://junglewise.ai/threats/technologies/zoneminder). Vendors: [Zoneminder](https://junglewise.ai/threats/vendors/zoneminder).

## Quick answers

**Is CVE-2026-104198 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-104198 being exploited in the wild.

**How severe is CVE-2026-104198?** Medium severity, with a CVSS score of 5.3, published 15 October 2026.

**Which products and versions are affected?** Zoneminder 1.34.0 through 1.36.38.

**Is there a fix for CVE-2026-104198?** Yes: fixed in ZoneMinder 1.36.63. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-104198 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-104198?** Check whether you run Zoneminder at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in ZoneMinder 1.36.63

## Technical details

The validateToken() function in web/includes/auth.php returns false on invalid or malformed tokens, but the caller assigns this boolean value to the global $user variable. Because isset($user) evaluates to true even when $user is boolean false, the authentication gate in web/index.php (which checks !isset($user)) is bypassed. This allows unauthenticated requests with a malformed ?token parameter to reach views like the zones display, which leaks monitor and zone metadata without permission checks. Privilege-sensitive operations correctly deny the false user value, preventing unauthorized state changes.

## Affected products

- ZoneMinder ZoneMinder 1.34.0 through 1.36.38

## Timeline

- 2026-10-15: disclosed

## References

- [https://github.com/ZoneMinder/zoneminder/commit/144a04ca4fff5fd02745ce8afc239ba5e05cf8ac](https://github.com/ZoneMinder/zoneminder/commit/144a04ca4fff5fd02745ce8afc239ba5e05cf8ac)
- [https://github.com/ZoneMinder/zoneminder/commit/6b94903e634fdb46cb71a48eadccf1aa14f0c2bb](https://github.com/ZoneMinder/zoneminder/commit/6b94903e634fdb46cb71a48eadccf1aa14f0c2bb)

## Related threats

- [ZoneMinder command injection in monitor Device Path](https://junglewise.ai/threats/cve-2026-30971-zoneminder-is-a-free-open-source-closed-circuit-television)
- [ZoneMinder command injection in downloadEvents](https://junglewise.ai/threats/cve-2026-102608-zoneminder-is-a-free-open-source-closed-circuit-television)
- [ZoneMinder command injection in event export](https://junglewise.ai/threats/cve-2026-102607-zoneminder-is-a-free-open-source-closed-circuit-television)
- [ZoneMinder access control bypass in FramesController](https://junglewise.ai/threats/cve-2026-102297-zoneminder-before-1-38-4-fails-to-apply-per-monitor-access)
- [ZoneMinder static buffer overflow in RemoteCameraHttp](https://junglewise.ai/threats/cve-2026-102296-zoneminder-before-1-38-4-contains-static-buffer-overflow)
