<?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://cve.radiocsirt.org</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, 12 Oct 2026 17:32:52 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-277222</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-277222</link>
      <description>EUVD-2026-277222</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-277222</guid>
    </item>
    <item>
      <title>fkie_cve-2026-33647</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33647</link>
      <description>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `ImageGallery::saveFile()` method validates uploaded file content using `finfo` MIME type detection but derives the saved filename extension from the user-supplied original filename without an allowlist check. An attacker can upload a polyglot file (valid JPEG magic bytes followed by PHP code) with a `.php` extension. The MIME check passes, but the file is saved as an executable `.php` file in a web-accessible directory, achieving Remote Code Execution. Commit 345a8d3ece0ad1e1b71a704c1579cbf885d8f3ae 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 `ImageGallery::saveFile()` method validates uploaded file content using `finfo` MIME type detection but derives the saved filename extension from the user-supplied original filename without an allowlist check. An attacker can upload a polyglot file (valid JPEG magic bytes followed by PHP code) with a `.php` extension. The MIME check passes, but the file is saved as an executable `.php` file in a web-accessible directory, achieving Remote Code Execution. Commit 345a8d3ece0ad1e1b71a704c1579cbf885d8f3ae contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-33647</guid>
    </item>
    <item>
      <title>GHSA-wxjw-phj6-g75w — AVideo Vulnerable to Remote Code Execution via MIME/Extension Mismatch in ImageGallery File Upload</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-wxjw-phj6-g75w</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 `ImageGallery::saveFile()` method validates uploaded file content using `finfo` MIME type detection but derives the saved filename extension from the user-supplied original filename without an allowlist check. An attacker can upload a polyglot file (valid JPEG magic bytes followed by PHP code) with a `.php` extension. The MIME check passes, but the file is saved as an executable `.php` file in a web-accessible directory, achieving Remote Code Execution.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerability exists in `plugin/ImageGallery/ImageGallery.php` in the `saveFile()` method:&lt;/p&gt;
&lt;p&gt;```php
// plugin/ImageGallery/ImageGallery.php:80-108
static function saveFile($file, $videos_id)
{
    $allowedMimeTypes = [&amp;#39;image/jpeg&amp;#39;, &amp;#39;image/webp&amp;#39;, &amp;#39;image/gif&amp;#39;, &amp;#39;image/png&amp;#39;, &amp;#39;video/mp4&amp;#39;];
    $directory = self::getImageDir($videos_id);&lt;/p&gt;
&lt;p&gt;// MIME check on file CONTENT — bypassable with polyglot
    $finfo = new finfo(FILEINFO_MIME_TYPE);
    $fileType = $finfo-&amp;gt;file($file[&amp;#39;tmp_name&amp;#39;]);&lt;/p&gt;
&lt;p&gt;if (in_array($fileType, $allowedMimeTypes)) {
        // Extension from attacker-controlled filename — NO allowlist
        $extension = strtolower(pathinfo($file[&amp;#39;name&amp;#39;], PATHINFO_EXTENSION));
        do {
            $newFilename = uniqid() . &amp;#39;.&amp;#39; . $extension;
            $newFilePath = $directory . $newFilename;
        } while (file_exists($newFilePath));&lt;/p&gt;
&lt;p&gt;move_uploaded_file($file[&amp;#39;tmp_name&amp;#39;], $newFilePath);
        // ...
    }
}
```&lt;/p&gt;
&lt;p&gt;**Root cause:** Line 93 extracts the extension from the user-su…&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 `ImageGallery::saveFile()` method validates uploaded file content using `finfo` MIME type detection but derives the saved filename extension from the user-supplied original filename without an allowlist check. An attacker can upload a polyglot file (valid JPEG magic bytes followed by PHP code) with a `.php` extension. The MIME check passes, but the file is saved as an executable `.php` file in a web-accessible directory, achieving Remote Code Execution.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerability exists in `plugin/ImageGallery/ImageGallery.php` in the `saveFile()` method:&lt;/p&gt;
&lt;p&gt;```php
// plugin/ImageGallery/ImageGallery.php:80-108
static function saveFile($file, $videos_id)
{
    $allowedMimeTypes = [&amp;#39;image/jpeg&amp;#39;, &amp;#39;image/webp&amp;#39;, &amp;#39;image/gif&amp;#39;, &amp;#39;image/png&amp;#39;, &amp;#39;video/mp4&amp;#39;];
    $directory = self::getImageDir($videos_id);&lt;/p&gt;
&lt;p&gt;// MIME check on file CONTENT — bypassable with polyglot
    $finfo = new finfo(FILEINFO_MIME_TYPE);
    $fileType = $finfo-&amp;gt;file($file[&amp;#39;tmp_name&amp;#39;]);&lt;/p&gt;
&lt;p&gt;if (in_array($fileType, $allowedMimeTypes)) {
        // Extension from attacker-controlled filename — NO allowlist
        $extension = strtolower(pathinfo($file[&amp;#39;name&amp;#39;], PATHINFO_EXTENSION));
        do {
            $newFilename = uniqid() . &amp;#39;.&amp;#39; . $extension;
            $newFilePath = $directory . $newFilename;
        } while (file_exists($newFilePath));&lt;/p&gt;
&lt;p&gt;move_uploaded_file($file[&amp;#39;tmp_name&amp;#39;], $newFilePath);
        // ...
    }
}
```&lt;/p&gt;
&lt;p&gt;**Root cause:** Line 93 extracts the extension from the user-su…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-wxjw-phj6-g75w</guid>
    </item>
  </channel>
</rss>
