GitHub Advisoryadvisory · PyPI

GHSA-r3cw-c95m-wfh9 motionEye: Authentication possible via password hash

CRITICAL Published 2026-06-22 Modified 2026-06-22 Official page ↗
Aliases
CVE-2026-46488
Ecosystem
PyPI
Packages
motioneye
Severity
Critical
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Weaknesses
CWE-256, CWE-287, CWE-328, CWE-836
Reviewed
2026-06-22

Affected packages

• PyPI motioneye: < 0.44.0 → fixed in 0.44.0

Description

Summary An authentication bypass vulnerability exists due to improper trust in client-controlled cookies. The application accepts user-supplied cookie values containing a username and password-hash-derived value as sufficient authentication material. These cookies can be set or modified prior to login, allowing an unauthenticated attacker to impersonate arbitrary users without knowledge of the plaintext password. This issue stems from the absence of server-side validation of authentication state and reliance on attacker-controlled cookie data Details The vulnerability arises because the application accepts the client-supplied cookies named `meye_password_hash` and `meye_username` as sufficient authentication material. The server does not validate these values against a server-side session or enforce proper authentication checks before establishing an authenticated state. As a result, an unauthenticated attacker can set or modify these cookies to impersonate another user if the target username and corresponding hash are known. These cookies normally appear after using the "switch user" functionality; however, they can be added manually prior to authentication using standard browser tools (e.g., developer tools or cookie editors) or dynamically loaded by submitting blank credentials. When supplied, the server accepts them and authenticates the attacker as the specified user bypassing the intended authentication flow Additionally, the password-hash value and username for the admin account used by the application is stored in `/etc/motioneye/motion.conf` which is globally readable by default on the local system. This means any local user with shell access can obtain a valid hash and values and use them to impersonate the admin via the cookie manipulation described above. While local access is required to retrieve the hash, this significantly lowers the barrier to exploitation in multi-user environments. PoC Starting state unauthenticated with no cookies: After manually adding or submitting blank credentials to get the cookies loaded: Adding the credentials and refreshing the page gives us a valid session: version information and session interaction validation Impact Authentication bypass Who is impacted? Any MotionEye deployment where attackers have access to a username and hash, and/or the `/etc/motioneye/motion.conf` file with the admin username and hash. Potential consequences: • Account lockouts • Attacker persistence by changing the password • Enumeration of data • Destruction of data • Exfiltration of data

Related

Alias · CVE (1)

  • CVE-2026-46488 motionEye (mEye) is an online interface for a piece of software called "motion," which is a video surveillance program with motion… vulnerability

Weakness · CWE (4)

  • CWE-256 Plaintext Storage of a Password weakness
  • CWE-287 Improper Authentication weakness
  • CWE-328 Use of Weak Hash weakness
  • CWE-836 Use of Password Hash Instead of Password for Authentication weakness

References