AI Security Summit: Join Figma, Perplexity & Wiz. [Register]

CVE-2026-55863
Python vulnerability analysis and mitigation

Overview

CVE-2026-55863 is a missing authorization vulnerability in motionEye, an open-source web frontend for the motion daemon used to manage IP cameras. The ActionHandler.post() method in motioneye/handlers/action.py lacks the @BaseHandler.auth() decorator, allowing any unauthenticated remote attacker to trigger camera actions such as snapshots, recording start/stop, PTZ controls, and configured alarm scripts. All versions of motionEye prior to 0.44.0 are affected. The vulnerability was published on June 20, 2026, and carries a CVSS v3.1 base score of 5.3 (Medium) (Github Advisory).

Technical details

The root cause is CWE-862 (Missing Authorization): the ActionHandler.post() method in motioneye/handlers/action.py (line 36) does not apply the @BaseHandler.auth() decorator that other sensitive handlers correctly use. Because no authentication check is enforced, any network-accessible attacker can send an unauthenticated HTTP POST request to /action/<camera_id>/<action> to invoke camera operations. The vulnerable code path handles actions including snapshot, record_start, record_stop, and arbitrary configured shell scripts via self.run_command_bg(command), which executes administrator-defined scripts (e.g., alarm triggers, lighting control). Exploitation requires only network access to the motionEye web interface (default port 8765) and knowledge of a valid camera ID (Github Advisory, motioneye Advisory).

Impact

An unauthenticated attacker can trigger camera snapshots on demand, start or stop video recordings, and — if action scripts are configured — execute PTZ movement, alarm control, and lighting changes, constituting a physical security bypass. If remote cameras are configured, the vulnerability can be abused for Server-Side Request Forgery (SSRF) by triggering actions that cause the motionEye server to contact remote camera endpoints. The integrity impact is low (no direct data exfiltration or code execution beyond predefined scripts), but the physical-world consequences of unauthorized alarm and camera manipulation can be significant in security-sensitive deployments (Github Advisory).

Exploitability

The vulnerability requires no authentication, no user interaction, and low attack complexity, making it trivially exploitable by any attacker with network access to the motionEye web interface. Exploitation was dynamically confirmed on v0.43.1 in a Docker lab environment, where a POST to /action/2/snapshot with no credentials returned HTTP 200 and processed the action. No public exploit kits or threat actor attribution have been reported, and the CVE status remains Reserved. The vulnerability has been detected by Qualys scanners. No CISA KEV listing or EPSS score data is currently available (Github Advisory, motioneye Advisory).

Exploitation steps

  1. Reconnaissance: Identify internet-facing or network-accessible motionEye instances (default port 8765) using tools like Shodan, Censys, or nmap. Confirm the version is below 0.44.0.
  2. Enumerate camera IDs: Attempt sequential integer camera IDs (e.g., 1, 2, 3) in the POST URL path. A 404 response indicates no such camera; a 200 response confirms a valid camera ID.
  3. Trigger snapshot: Send an unauthenticated POST request to capture a snapshot:
POST /action/1/snapshot HTTP/1.1
Host: motioneye-host:8765
Content-Length: 0

A {} HTTP 200 response confirms the action was executed without credentials. 4. Trigger recording or action scripts: Send similar unauthenticated POST requests for other actions:

POST /action/1/record_start HTTP/1.1
POST /action/1/alarm_on HTTP/1.1
POST /action/1/light_on HTTP/1.1
  1. Abuse configured shell scripts: If the administrator has configured custom action scripts (PTZ, alarm, lock/unlock), these are executed server-side via run_command_bg() without any authentication check, potentially enabling physical security bypass or SSRF against remote camera endpoints (Github Advisory, motioneye Advisory).

Indicators of compromise

  • Network: Unexpected HTTP POST requests to /action/<integer>/<action_name> on port 8765 (or configured motionEye port) from unauthenticated or unknown source IPs; repeated requests cycling through camera IDs (1, 2, 3, ...) suggesting enumeration.
  • Logs: motionEye access logs showing POST requests to /action/ endpoints with HTTP 200 responses from IPs not associated with legitimate users; absence of authentication tokens or session cookies in these requests.
  • Process: Unexpected execution of configured action shell scripts (e.g., alarm, PTZ, lighting scripts) at unusual times or frequencies, visible in system process logs or motion daemon logs.
  • Application: Unexpected snapshots appearing in the snapshot directory; video recordings starting or stopping without user-initiated actions (Github Advisory).

Mitigation and workarounds

Upgrade motionEye to version 0.44.0 or later, which adds the @BaseHandler.auth() decorator to the ActionHandler.post() method, enforcing authentication for all camera action requests. As a temporary workaround, restrict network access to the motionEye web interface (default port 8765) using firewall rules or a reverse proxy with authentication, limiting exposure to trusted IP ranges only. There is no configuration-based workaround within motionEye itself for versions below 0.44.0 (Github Advisory, motioneye Advisory).

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-61667CRITICAL9.9
  • Python logoPython
  • dirac
NoYesSep 15, 2026
CVE-2026-45579CRITICAL9.9
  • Python logoPython
  • dirac
NoYesSep 15, 2026
CVE-2026-61668HIGH8.1
  • Python logoPython
  • dirac
NoYesSep 15, 2026
CVE-2026-55863MEDIUM5.3
  • Python logoPython
  • motioneye
NoYesSep 15, 2026
CVE-2026-53954MEDIUM4.3
  • Python logoPython
  • bugsink
NoYesSep 15, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management