<?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-21T12:52:37.608527+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-292387</id>
    <title>EUVD-2026-292387</title>
    <updated>2026-10-21T12:52:37.642474+00:00</updated>
    <content>EUVD-2026-292387</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-292387"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-41061</id>
    <title>fkie_cve-2026-41061</title>
    <updated>2026-10-21T12:52:37.642516+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>WWBN AVideo is an open source video platform. In versions 29.0 and below, the `isValidDuration()` regex at `objects/video.php:918` uses `/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/` without a `$` end anchor, allowing arbitrary HTML/JavaScript to be appended after a valid duration prefix. The crafted duration is stored in the database and rendered without HTML escaping via `echo Video::getCleanDuration()` on trending pages, playlist pages, and video gallery thumbnails, resulting in stored cross-site scripting. Commit bcba324644df8b4ed1f891462455f1cd26822a45 contains a fix.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-41061"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-8pv3-29pp-pf8f</id>
    <title>GHSA-8pv3-29pp-pf8f — WWBN AVideo has Stored XSS via Unanchored Duration Regex in Video Encoder Receiver</title>
    <updated>2026-10-21T12:52:37.642555+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: wwbn/avideo</p>
<p>## Summary</p>
<p>The `isValidDuration()` regex at `objects/video.php:918` uses `/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/` without a `$` end anchor, allowing arbitrary HTML/JavaScript to be appended after a valid duration prefix. The crafted duration is stored in the database and rendered without HTML escaping via `echo Video::getCleanDuration()` on trending pages, playlist pages, and video gallery thumbnails, resulting in stored cross-site scripting.</p>
<p>## Details</p>
<p>**Input entry point:** `objects/aVideoEncoderReceiveImage.json.php:208`</p>
<p>```php
// Line 203-211
if (!empty($_REQUEST['duration'])) {
    $video-&gt;setDuration($_REQUEST['duration']);
}
```</p>
<p>**Insufficient validation:** `objects/video.php:918`</p>
<p>```php
static function isValidDuration($duration) {
    // ...
    return preg_match('/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/', $duration);
    //     Missing $ anchor here -----------------------------------^
}
```</p>
<p>The regex matches `00:00:01` at the start of the string but ignores everything after it. A payload like `00:00:01&lt;/time&gt;&lt;img src=x onerror=alert(1)&gt;&lt;time&gt;` passes validation.</p>
<p>**No sanitization in output function:** `objects/video.php:3463-3480`</p>
<p>```php
public static function getCleanDuration($duration = "") {
    $durationParts = explode(".", $duration);
    $duration = $durationParts[0];
    $durationParts = explode(':', $duration);
    if (count($durationParts) == 1) {
        return '0:00:' . static::addZero($durationParts[0]);
    } elseif (count($durationParts) == 2) {…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-8pv3-29pp-pf8f"/>
  </entry>
</feed>
