<?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>Wed, 07 Oct 2026 05:31:49 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-317354</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-317354</link>
      <description>EUVD-2026-317354</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-317354</guid>
    </item>
    <item>
      <title>fkie_cve-2026-43877</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-43877</link>
      <description>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 29.0, objects/userSavePhoto.php is a legacy profile-photo endpoint that accepts a base64 POST parameter and writes the decoded bytes to videos/userPhoto/photo&amp;lt;users_id&amp;gt;.png. Its only access control is User::isLogged(). It does not end in .json.php, so it is excluded from the project&amp;#39;s global autoCSRFGuard (which is suffix-scoped in objects/include_config.php). There is no CSRF token, no Origin/Referer check, and no MIME validation of the decoded bytes. Because AVideo&amp;#39;s default cookie policy is SameSite=None; Secure on HTTPS (objects/functionsPHP.php:227), an attacker who lures a logged-in user to a malicious page can overwrite that user&amp;#39;s profile photo with arbitrary bytes and also triggers a site-wide clearCache(true) on every forged request. Commit 9c38468041505e637101c5943c5370c68f48e3ac contains an updated fix.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 29.0, objects/userSavePhoto.php is a legacy profile-photo endpoint that accepts a base64 POST parameter and writes the decoded bytes to videos/userPhoto/photo&amp;lt;users_id&amp;gt;.png. Its only access control is User::isLogged(). It does not end in .json.php, so it is excluded from the project&amp;#39;s global autoCSRFGuard (which is suffix-scoped in objects/include_config.php). There is no CSRF token, no Origin/Referer check, and no MIME validation of the decoded bytes. Because AVideo&amp;#39;s default cookie policy is SameSite=None; Secure on HTTPS (objects/functionsPHP.php:227), an attacker who lures a logged-in user to a malicious page can overwrite that user&amp;#39;s profile photo with arbitrary bytes and also triggers a site-wide clearCache(true) on every forged request. Commit 9c38468041505e637101c5943c5370c68f48e3ac contains an updated fix.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-43877</guid>
    </item>
    <item>
      <title>GHSA-jw8g-5j46-44rp — AVideo: CSRF in userSavePhoto.php Allows Cross-Origin Overwrite of Authenticated Users' Profile Photos with Arbitrary C…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-jw8g-5j46-44rp</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;`objects/userSavePhoto.php` is a legacy profile-photo endpoint that accepts a base64 POST parameter and writes the decoded bytes to `videos/userPhoto/photo&amp;lt;users_id&amp;gt;.png`. Its only access control is `User::isLogged()`. It does not end in `.json.php`, so it is excluded from the project&amp;#39;s global `autoCSRFGuard` (which is suffix-scoped in `objects/include_config.php`). There is no CSRF token, no Origin/Referer check, and no MIME validation of the decoded bytes. Because AVideo&amp;#39;s default cookie policy is `SameSite=None; Secure` on HTTPS (`objects/functionsPHP.php:227`), an attacker who lures a logged-in user to a malicious page can overwrite that user&amp;#39;s profile photo with arbitrary bytes and also triggers a site-wide `clearCache(true)` on every forged request.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;Handler (`objects/userSavePhoto.php`, 51 lines total):&lt;/p&gt;
&lt;p&gt;```php
// line 12 - only access control
if (!User::isLogged()) {
    $obj-&amp;gt;msg = __(&amp;#34;You must be logged&amp;#34;);
    die(json_encode($obj));
}
// ...
// line 29 - unvalidated base64 from POST
$fileData = base64DataToImage($_POST[&amp;#39;imgBase64&amp;#39;]);
// line 30 - deterministic filename tied to the VICTIM&amp;#39;s session
$fileName = &amp;#39;photo&amp;#39;. User::getId().&amp;#39;.png&amp;#39;;
$photoURL = $imagePath.$fileName;
// line 35 - raw bytes written to disk
$bytes = file_put_contents($global[&amp;#39;systemRootPath&amp;#39;].$photoURL, $fileData);
// lines 43-48 - DB update + global cache invalidation unconditionally
$user = new User(User::getId());
$user-&amp;gt;setPhotoURL($photoURL);
if ($user-&amp;gt;save()) {…&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;`objects/userSavePhoto.php` is a legacy profile-photo endpoint that accepts a base64 POST parameter and writes the decoded bytes to `videos/userPhoto/photo&amp;lt;users_id&amp;gt;.png`. Its only access control is `User::isLogged()`. It does not end in `.json.php`, so it is excluded from the project&amp;#39;s global `autoCSRFGuard` (which is suffix-scoped in `objects/include_config.php`). There is no CSRF token, no Origin/Referer check, and no MIME validation of the decoded bytes. Because AVideo&amp;#39;s default cookie policy is `SameSite=None; Secure` on HTTPS (`objects/functionsPHP.php:227`), an attacker who lures a logged-in user to a malicious page can overwrite that user&amp;#39;s profile photo with arbitrary bytes and also triggers a site-wide `clearCache(true)` on every forged request.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;Handler (`objects/userSavePhoto.php`, 51 lines total):&lt;/p&gt;
&lt;p&gt;```php
// line 12 - only access control
if (!User::isLogged()) {
    $obj-&amp;gt;msg = __(&amp;#34;You must be logged&amp;#34;);
    die(json_encode($obj));
}
// ...
// line 29 - unvalidated base64 from POST
$fileData = base64DataToImage($_POST[&amp;#39;imgBase64&amp;#39;]);
// line 30 - deterministic filename tied to the VICTIM&amp;#39;s session
$fileName = &amp;#39;photo&amp;#39;. User::getId().&amp;#39;.png&amp;#39;;
$photoURL = $imagePath.$fileName;
// line 35 - raw bytes written to disk
$bytes = file_put_contents($global[&amp;#39;systemRootPath&amp;#39;].$photoURL, $fileData);
// lines 43-48 - DB update + global cache invalidation unconditionally
$user = new User(User::getId());
$user-&amp;gt;setPhotoURL($photoURL);
if ($user-&amp;gt;save()) {…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-jw8g-5j46-44rp</guid>
    </item>
  </channel>
</rss>
