Skip to main content
Public proof of conceptFix available

CVE-2026-31978

A public proof of concept exists; no exploitation attested.

  • Published2026-06-24
  • Fixed in0.44.0
  • WeaknessCWE-22 · CWE-284

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

motionEye (mEye) is an online interface for motion software, which is a video surveillance program with motion detection. Versions prior to 0.44.0 are vulnerable to path traversal in the picture and movie API endpoints, suhc as /picture/{id}/preview/{filename}. Neither the API handlers, nor the mediafiles.py functions such as get_media_preview() check for .. sequences in the filename parameter, except for get_media_content(). This allows an authenticated user with normal (non-admin) privileges to read arbitrary files from the filesystem as the motionEye process user, such as: /etc/passwd, /etc/shadow, motionEye config files containing password hashes and plaintext passwords, SSH keys, and other cameras' surveillance footage. This issue has been fixed in version 0.44.0.

Timeline

dates in UTC
  1. 2026-06-2421:16CVE publishedNVD

Observed activity

isMalicious corpus · updated 2026-11-04 15:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2026-31978?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2026-31978?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

OSV
motioneye
BranchAffectedFixed in
0.44< 0.44.00.44.0

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Products declared by the CNA1 product

As GitHub_M, the CNA that assigned this CVE, declared them in the CVE record; versions as written.

  • motioneye-project motioneye
    Affected
    • = < 0.44.0no fix stated

Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2026-06-24

Fix

  1. Update motioneye to 0.44.0

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
none listed
PoC-in-GitHub
Metasploit modules
none listed
Metasploit Framework

Sources

  • NVDCVE recordread 2026-10-26
  • CISA-ADPSSVC decisionpoc2026-06-25
  • OpenCVESSVC decisionpoc—
  • CNACVSS 3.16.5known since 2026-10-26
  • CNAweakness (CWE)CWE-22, CWE-284known since 2026-10-26
  • FIRST EPSSEPSS score0.3 %2026-11-03
  • OSVaffected packages—
  • GitHub AdvisoriesadvisoryMODERATE2026-06-22

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Published
2026-06-24
Last Modified
2026-10-25
NVD status
Deferred
GitHub Advisory
GHSA-g9fx-5r4h-pcw3

Frequently asked questions

What is CVE-2026-31978?

motionEye (mEye) is an online interface for motion software, which is a video surveillance program with motion detection. Versions prior to 0.44.0 are vulnerable to path traversal in the picture and movie API endpoints, suhc as /picture/{id}/preview/{filename}. Neither the API handlers, nor the mediafiles.py functions such as get_media_preview() check for .. sequences in the filename parameter, except for get_media_content(). This allows an authenticated user with normal (non-admin) privileges to read arbitrary files from the filesystem as the motionEye process user, such as: /etc/passwd, /etc/shadow, motionEye config files containing password hashes and plaintext passwords, SSH keys, and other cameras' surveillance footage. This issue has been fixed in version 0.44.0.

Is CVE-2026-31978 actively exploited?

A proof-of-concept exploit exists for CVE-2026-31978, but active exploitation has not been confirmed at this time.

What is the CVSS score for CVE-2026-31978?

CVE-2026-31978 has a CVSS v3 base score of 6.5 (MEDIUM severity), with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N.

Running motioneye? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record