<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-03T09:54:52.029532+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-330406</id>
    <title>EUVD-2026-330406</title>
    <updated>2026-10-03T09:54:52.091712+00:00</updated>
    <content>EUVD-2026-330406</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-330406"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-31978</id>
    <title>fkie_cve-2026-31978</title>
    <updated>2026-10-03T09:54:52.091747+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-31978"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-g9fx-5r4h-pcw3</id>
    <title>GHSA-g9fx-5r4h-pcw3 — motionEye has an Arbitrary File Read via Path Traversal in Picture/Movie Preview Endpoint</title>
    <updated>2026-10-03T09:54:52.091784+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: motioneye</p>
<p>### Summary</p>
<p>motionEye v0.43.1 (latest stable) is vulnerable to path traversal in the picture and movie API endpoints, like `/picture/{id}/preview/{filename}`. Neither the API handlers, nor the `mediafiles.py` functions like `get_media_preview()` check for `..` sequences in the filename parameter, except `get_media_content()` which does. This allows an authenticated user with normal (non-admin) privileges to read arbitrary files from the filesystem as the motionEye process user.</p>
<p>### Details</p>
<p>The `get_media_content()` function properly validates the path:</p>
<p>```python
# mediafiles.py ~line 506 — SAFE
def get_media_content(camera_config, path, media_type):
    target_dir = camera_config['target_dir']
    full_path = os.path.join(target_dir, path)</p>
<p>if '..' in path:        # &lt;-- PATH TRAVERSAL CHECK PRESENT
        return None
    ...
```</p>
<p>But `get_media_preview()` does NOT:</p>
<p>```python
# mediafiles.py ~line 910 — VULNERABLE
def get_media_preview(camera_config, path, media_type, ...):
    target_dir = camera_config['target_dir']
    full_path = os.path.join(target_dir, path)
    # &lt;-- NO '..' CHECK
    ...
```</p>
<p>Similarly, `del_media_content()` at line ~865 is also missing the check. This is a classic inconsistent fix pattern.</p>
<p>The exploit requires `%2F`-encoded slashes (`..%2F..%2F`) which Tornado's URL router does NOT normalize — it passes the raw `../` through to `os.path.join()`.</p>
<p>### PoC</p>
<p>**Step 1:** Authenticate as any user (normal or admin).</p>
<p>**Step 2:** Compute the requ…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-g9fx-5r4h-pcw3"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/pysec-2026-2664</id>
    <title>PYSEC-2026-2664 — motionEye has an Arbitrary File Read via Path Traversal in Picture/Movie Preview Endpoint</title>
    <updated>2026-10-03T09:54:52.091848+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: motioneye</p>
<p>### Summary</p>
<p>motionEye v0.43.1 (latest stable) is vulnerable to path traversal in the picture and movie API endpoints, like `/picture/{id}/preview/{filename}`. Neither the API handlers, nor the `mediafiles.py` functions like `get_media_preview()` check for `..` sequences in the filename parameter, except `get_media_content()` which does. This allows an authenticated user with normal (non-admin) privileges to read arbitrary files from the filesystem as the motionEye process user.</p>
<p>### Details</p>
<p>The `get_media_content()` function properly validates the path:</p>
<p>```python
# mediafiles.py ~line 506 — SAFE
def get_media_content(camera_config, path, media_type):
    target_dir = camera_config['target_dir']
    full_path = os.path.join(target_dir, path)</p>
<p>if '..' in path:        # &lt;-- PATH TRAVERSAL CHECK PRESENT
        return None
    ...
```</p>
<p>But `get_media_preview()` does NOT:</p>
<p>```python
# mediafiles.py ~line 910 — VULNERABLE
def get_media_preview(camera_config, path, media_type, ...):
    target_dir = camera_config['target_dir']
    full_path = os.path.join(target_dir, path)
    # &lt;-- NO '..' CHECK
    ...
```</p>
<p>Similarly, `del_media_content()` at line ~865 is also missing the check. This is a classic inconsistent fix pattern.</p>
<p>The exploit requires `%2F`-encoded slashes (`..%2F..%2F`) which Tornado's URL router does NOT normalize — it passes the raw `../` through to `os.path.join()`.</p>
<p>### PoC</p>
<p>**Step 1:** Authenticate as any user (normal or admin).</p>
<p>**Step 2:** Compute the requ…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/pysec-2026-2664"/>
  </entry>
</feed>
