<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 19:02:51 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-33493</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-33493</link>
      <description>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `objects/import.json.php` endpoint accepts a user-controlled `fileURI` POST parameter with only a regex check that the value ends in `.mp4`. Unlike `objects/listFiles.json.php`, which was hardened with a `realpath()` + directory prefix check to restrict paths to the `videos/` directory, `import.json.php` performs no directory restriction. This allows an authenticated user with upload permission to: (1) steal any other user&amp;#39;s private video files by importing them into their own account, (2) read `.txt`/`.html`/`.htm` files adjacent to any `.mp4` file on the filesystem, and (3) delete `.mp4` and adjacent text files if writable by the web server process. Commit e110ff542acdd7e3b81bdd02b8402b9f6a61ad78 contains a patch.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `objects/import.json.php` endpoint accepts a user-controlled `fileURI` POST parameter with only a regex check that the value ends in `.mp4`. Unlike `objects/listFiles.json.php`, which was hardened with a `realpath()` + directory prefix check to restrict paths to the `videos/` directory, `import.json.php` performs no directory restriction. This allows an authenticated user with upload permission to: (1) steal any other user&amp;#39;s private video files by importing them into their own account, (2) read `.txt`/`.html`/`.htm` files adjacent to any `.mp4` file on the filesystem, and (3) delete `.mp4` and adjacent text files if writable by the web server process. Commit e110ff542acdd7e3b81bdd02b8402b9f6a61ad78 contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-33493</guid>
    </item>
    <item>
      <title>GHSA-83xq-8jxj-4rxm — AVideo has a Path Traversal in import.json.php Allows Private Video Theft and Arbitrary File Read/Deletion via fileURI…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-83xq-8jxj-4rxm</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: wwbn/avideo&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `objects/import.json.php` endpoint accepts a user-controlled `fileURI` POST parameter with only a regex check that the value ends in `.mp4`. Unlike `objects/listFiles.json.php`, which was hardened with a `realpath()` + directory prefix check to restrict paths to the `videos/` directory, `import.json.php` performs no directory restriction. This allows an authenticated user with upload permission to: (1) steal any other user&amp;#39;s private video files by importing them into their own account, (2) read `.txt`/`.html`/`.htm` files adjacent to any `.mp4` file on the filesystem, and (3) delete `.mp4` and adjacent text files if writable by the web server process.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Missing path restriction in import.json.php&lt;/p&gt;
&lt;p&gt;At `objects/import.json.php:12`, the only validation on the user-supplied `fileURI` is a regex ensuring it ends with `.mp4`:&lt;/p&gt;
&lt;p&gt;```php
// objects/import.json.php:12
if (!preg_match(&amp;#34;/.*\\.mp4$/i&amp;#34;, $_POST[&amp;#39;fileURI&amp;#39;])) {
    return false;
}
```&lt;/p&gt;
&lt;p&gt;Compare this to the hardened `listFiles.json.php:16-28`, which was patched to restrict paths:&lt;/p&gt;
&lt;p&gt;```php
// objects/listFiles.json.php:16-28
$allowedBase = realpath($global[&amp;#39;systemRootPath&amp;#39;] . &amp;#39;videos&amp;#39;);
// ...
$resolvedPath = realpath($_POST[&amp;#39;path&amp;#39;]);
if ($resolvedPath === false || strpos($resolvedPath . &amp;#39;/&amp;#39;, $allowedBase) !== 0) {
    http_response_code(403);
    echo json_encode([&amp;#39;error&amp;#39; =&amp;gt; &amp;#39;Path not allowed&amp;#39;]);
    exit;
}
```&lt;/p&gt;
&lt;p&gt;The same fix was never applied to `import.json.php`.&lt;/p&gt;
&lt;p&gt;### Attack Primitive 1: File con…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: wwbn/avideo&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `objects/import.json.php` endpoint accepts a user-controlled `fileURI` POST parameter with only a regex check that the value ends in `.mp4`. Unlike `objects/listFiles.json.php`, which was hardened with a `realpath()` + directory prefix check to restrict paths to the `videos/` directory, `import.json.php` performs no directory restriction. This allows an authenticated user with upload permission to: (1) steal any other user&amp;#39;s private video files by importing them into their own account, (2) read `.txt`/`.html`/`.htm` files adjacent to any `.mp4` file on the filesystem, and (3) delete `.mp4` and adjacent text files if writable by the web server process.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Missing path restriction in import.json.php&lt;/p&gt;
&lt;p&gt;At `objects/import.json.php:12`, the only validation on the user-supplied `fileURI` is a regex ensuring it ends with `.mp4`:&lt;/p&gt;
&lt;p&gt;```php
// objects/import.json.php:12
if (!preg_match(&amp;#34;/.*\\.mp4$/i&amp;#34;, $_POST[&amp;#39;fileURI&amp;#39;])) {
    return false;
}
```&lt;/p&gt;
&lt;p&gt;Compare this to the hardened `listFiles.json.php:16-28`, which was patched to restrict paths:&lt;/p&gt;
&lt;p&gt;```php
// objects/listFiles.json.php:16-28
$allowedBase = realpath($global[&amp;#39;systemRootPath&amp;#39;] . &amp;#39;videos&amp;#39;);
// ...
$resolvedPath = realpath($_POST[&amp;#39;path&amp;#39;]);
if ($resolvedPath === false || strpos($resolvedPath . &amp;#39;/&amp;#39;, $allowedBase) !== 0) {
    http_response_code(403);
    echo json_encode([&amp;#39;error&amp;#39; =&amp;gt; &amp;#39;Path not allowed&amp;#39;]);
    exit;
}
```&lt;/p&gt;
&lt;p&gt;The same fix was never applied to `import.json.php`.&lt;/p&gt;
&lt;p&gt;### Attack Primitive 1: File con…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-83xq-8jxj-4rxm</guid>
    </item>
  </channel>
</rss>
