CVE-2026-31978 json
motionEye: Arbitrary File Read via Path Traversal in Picture/Movie Preview Endpoint
published 2026-06-22 4 mo ago modified 2026-10-25 14 d ago also EUVD-2026-39078 , GHSA-g9fx-5r4h-pcw3 , PYSEC-2026-2664
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 27%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi motioneye 0.44.0
- motioneye_project motioneye 0.44.0
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.34% chance of exploitation in the next 30 days, higher than 27% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/motioneye-project/motioneye/security/advisories/GHSA-g9fx-5r4h-pcw3 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | motioneye | <0.44.0 |
0.44.0 |
Affected products
- motioneye-project motioneye
Classification
References
-
github.com
/motioneye-project/motioneye/security/advisories/GHSA-g9fx-5r4h-pcw3
exploit, web
- github.com /motioneye-project/motioneye/releases/tag/0.44.0
-
github.com
/motioneye-project/motioneye
package
-
pypi.org
/project/motioneye
package
-
github.com
/advisories/GHSA-g9fx-5r4h-pcw3
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-31978
advisory
Sources
- CVE List CVE-2026-31978
- GitHub Advisory GHSA-g9fx-5r4h-pcw3
- NVD CVE-2026-31978
- OSV PYSEC-2026-2664
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.