criticalVulnerability

GHSA-phv5-334h-mxcw

# Partial Authentication Bypass: Unauthenticated Admin Credential Theft via Path Traversal ### Summary Myself and others have reported several RCE vulnerabilities to this project. However, due to the nature of the app, these are largely not of all that much value, as there is built-in functionality to run commands upon certain actions — i.e. RCE is by design. With that in mind, I endeavored to find some sort of auth bypass, and was slightly successful. When the admin password is set but the normal (surveillance) user password is left empty (the default), an unauthenticated attacker can exploit a path traversal vulnerability to read the motionEye configuration file from disk. This file contains the admin password as a SHA-1 hash, and that hash is accepted directly as a signing key for admin API requests — no cracking required. The result is full admin access from zero credentials. This is a realistic scenario: many installations set an admin password to protect the settings UI but leave the normal user password empty so household members can view camera feeds without logging in. ### Details The vulnerability chains two independent issues: **1. Unauthenticated normal-user access when `@normal_password` is empty** In `motioneye/handlers/base.py`, lines 149-151: ```python # no authentication required for normal user if not username and not normal_password: return 'normal' ``` When `@normal_password` is empty (the default — see `config.py` line 2251: `data.setdefault('@normal_password', '')`), any request without a `_username` parameter is silently granted `normal` user access. This is by design for convenience, but it means all normal-level endpoints are fully unauthenticated. **2. Path traversal in `MoviePlaybackHandler` (and related handlers)** The movie playback handler at `motioneye/handlers/movie_playback.py` serves recorded video files. It accepts a filename in the URL path: ``` GET /movie/<camera_id>/playback/<filename> ``` The filename is pass

Properties

ghsa_id
GHSA-phv5-334h-mxcw
severity
critical
summary
motionEye Partial Authentication Bypass: Unauthenticated Admin Credential Theft via Path Traversal
cve_id
GHSA-phv5-334h-mxcw
is_ghsa_only
true
ghsa_published
2026-06-23T19:09:29Z
source_url
https://github.com/advisories/GHSA-phv5-334h-mxcw
ghsa_updated
2026-06-23T19:09:29Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]pip/motioneye

AFFECTS (1)

[Software]pip/motioneye

HAS_WEAKNESS (1)

[Weakness]Path Traversal: '.../...//'

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-phv5-334h-mxcw — Ninja Signal Threat Intelligence | Ninja Signal