<?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>Sat, 17 Oct 2026 19:06:42 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-277398</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-277398</link>
      <description>EUVD-2026-277398</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-277398</guid>
    </item>
    <item>
      <title>fkie_cve-2026-33485</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33485</link>
      <description>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 26.0, the RTMP `on_publish` callback at `plugin/Live/on_publish.php` is accessible without authentication. The `$_POST[&amp;#39;name&amp;#39;]` parameter (stream key) is interpolated directly into SQL queries in two locations — `LiveTransmitionHistory::getLatest()` and `LiveTransmition::keyExists()` — without parameterized binding or escaping. An unauthenticated attacker can exploit time-based blind SQL injection to extract all database contents including user password hashes, email addresses, and other sensitive data. Commit af59eade82de645b20183cc3d74467a7eac76549 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 RTMP `on_publish` callback at `plugin/Live/on_publish.php` is accessible without authentication. The `$_POST[&amp;#39;name&amp;#39;]` parameter (stream key) is interpolated directly into SQL queries in two locations — `LiveTransmitionHistory::getLatest()` and `LiveTransmition::keyExists()` — without parameterized binding or escaping. An unauthenticated attacker can exploit time-based blind SQL injection to extract all database contents including user password hashes, email addresses, and other sensitive data. Commit af59eade82de645b20183cc3d74467a7eac76549 contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-33485</guid>
    </item>
    <item>
      <title>GHSA-8p58-35c3-ccxx — AVideo has an Unauthenticated Blind SQL Injection in RTMP on_publish Callback via Stream Name Parameter</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-8p58-35c3-ccxx</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 RTMP `on_publish` callback at `plugin/Live/on_publish.php` is accessible without authentication. The `$_POST[&amp;#39;name&amp;#39;]` parameter (stream key) is interpolated directly into SQL queries in two locations — `LiveTransmitionHistory::getLatest()` and `LiveTransmition::keyExists()` — without parameterized binding or escaping. An unauthenticated attacker can exploit time-based blind SQL injection to extract all database contents including user password hashes, email addresses, and other sensitive data.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Entry point:** `plugin/Live/on_publish.php` — no authentication, no IP allowlist, no origin verification.&lt;/p&gt;
&lt;p&gt;**Sanitization (insufficient):** Line 117 strips only `&amp;amp;` and `=` characters:
```php
// plugin/Live/on_publish.php:117
$_POST[&amp;#39;name&amp;#39;] = preg_replace(&amp;#34;/[&amp;amp;=]/&amp;#34;, &amp;#39;&amp;#39;, $_POST[&amp;#39;name&amp;#39;]);
```&lt;/p&gt;
&lt;p&gt;**Injection point #1 — unconditional (no `p` parameter needed):**&lt;/p&gt;
&lt;p&gt;At line 120, `$_POST[&amp;#39;name&amp;#39;]` is passed directly to `LiveTransmitionHistory::getLatest()`:
```php
// plugin/Live/on_publish.php:120
$activeLive = LiveTransmitionHistory::getLatest($_POST[&amp;#39;name&amp;#39;], $live_servers_id, ...);
```&lt;/p&gt;
&lt;p&gt;Inside `getLatest()`, the key is interpolated into a LIKE clause without escaping:
```php
// plugin/Live/Objects/LiveTransmitionHistory.php:494-495
if (!empty($key)) {
    $sql .= &amp;#34; AND lth.`key` LIKE &amp;#39;{$key}%&amp;#39; &amp;#34;;
}
```&lt;/p&gt;
&lt;p&gt;**Injection point #2 — when `$_GET[&amp;#39;p&amp;#39;]` is provided:**&lt;/p&gt;
&lt;p&gt;At line 146, `$_POST[&amp;#39;name&amp;#39;]` is passed to `LiveTransmition::keyExists()`:
```php
// plugin/Live/on_publish…&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 RTMP `on_publish` callback at `plugin/Live/on_publish.php` is accessible without authentication. The `$_POST[&amp;#39;name&amp;#39;]` parameter (stream key) is interpolated directly into SQL queries in two locations — `LiveTransmitionHistory::getLatest()` and `LiveTransmition::keyExists()` — without parameterized binding or escaping. An unauthenticated attacker can exploit time-based blind SQL injection to extract all database contents including user password hashes, email addresses, and other sensitive data.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Entry point:** `plugin/Live/on_publish.php` — no authentication, no IP allowlist, no origin verification.&lt;/p&gt;
&lt;p&gt;**Sanitization (insufficient):** Line 117 strips only `&amp;amp;` and `=` characters:
```php
// plugin/Live/on_publish.php:117
$_POST[&amp;#39;name&amp;#39;] = preg_replace(&amp;#34;/[&amp;amp;=]/&amp;#34;, &amp;#39;&amp;#39;, $_POST[&amp;#39;name&amp;#39;]);
```&lt;/p&gt;
&lt;p&gt;**Injection point #1 — unconditional (no `p` parameter needed):**&lt;/p&gt;
&lt;p&gt;At line 120, `$_POST[&amp;#39;name&amp;#39;]` is passed directly to `LiveTransmitionHistory::getLatest()`:
```php
// plugin/Live/on_publish.php:120
$activeLive = LiveTransmitionHistory::getLatest($_POST[&amp;#39;name&amp;#39;], $live_servers_id, ...);
```&lt;/p&gt;
&lt;p&gt;Inside `getLatest()`, the key is interpolated into a LIKE clause without escaping:
```php
// plugin/Live/Objects/LiveTransmitionHistory.php:494-495
if (!empty($key)) {
    $sql .= &amp;#34; AND lth.`key` LIKE &amp;#39;{$key}%&amp;#39; &amp;#34;;
}
```&lt;/p&gt;
&lt;p&gt;**Injection point #2 — when `$_GET[&amp;#39;p&amp;#39;]` is provided:**&lt;/p&gt;
&lt;p&gt;At line 146, `$_POST[&amp;#39;name&amp;#39;]` is passed to `LiveTransmition::keyExists()`:
```php
// plugin/Live/on_publish…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-8p58-35c3-ccxx</guid>
    </item>
  </channel>
</rss>
