<?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>Fri, 09 Oct 2026 06:09:20 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-278196</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-278196</link>
      <description>EUVD-2026-278196</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-278196</guid>
    </item>
    <item>
      <title>fkie_cve-2026-34368</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-34368</link>
      <description>&lt;p&gt;WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `transferBalance()` method in `plugin/YPTWallet/YPTWallet.php` contains a Time-of-Check-Time-of-Use (TOCTOU) race condition. The method reads the sender&amp;#39;s wallet balance, checks sufficiency in PHP, then writes the new balance — all without database transactions or row-level locking. An attacker with multiple authenticated sessions can send concurrent transfer requests that all read the same stale balance, each passing the balance check independently, resulting in only one deduction being applied while the recipient is credited multiple times. Commit 34132ad5159784bfc7ba0d7634bb5c79b769202d contains a fix.&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 `transferBalance()` method in `plugin/YPTWallet/YPTWallet.php` contains a Time-of-Check-Time-of-Use (TOCTOU) race condition. The method reads the sender&amp;#39;s wallet balance, checks sufficiency in PHP, then writes the new balance — all without database transactions or row-level locking. An attacker with multiple authenticated sessions can send concurrent transfer requests that all read the same stale balance, each passing the balance check independently, resulting in only one deduction being applied while the recipient is credited multiple times. Commit 34132ad5159784bfc7ba0d7634bb5c79b769202d contains a fix.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-34368</guid>
    </item>
    <item>
      <title>GHSA-h54m-c522-h6qr — AVideo Vulnerable to Wallet Balance Double-Spend via TOCTOU Race Condition in transferBalance</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-h54m-c522-h6qr</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 `transferBalance()` method in `plugin/YPTWallet/YPTWallet.php` contains a Time-of-Check-Time-of-Use (TOCTOU) race condition. The method reads the sender&amp;#39;s wallet balance, checks sufficiency in PHP, then writes the new balance — all without database transactions or row-level locking. An attacker with multiple authenticated sessions can send concurrent transfer requests that all read the same stale balance, each passing the balance check independently, resulting in only one deduction being applied while the recipient is credited multiple times.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerable code path in `plugin/YPTWallet/YPTWallet.php:450-517`:&lt;/p&gt;
&lt;p&gt;```php
// Line 473-474: READ - fetch current balance (plain SELECT, no FOR UPDATE)
$senderWallet = self::getWallet($fromUserId);
$senderBalance = $senderWallet-&amp;gt;getBalance();
$senderNewBalance = $senderBalance - $amount;&lt;/p&gt;
&lt;p&gt;// Line 477: CHECK - verify sufficient funds in PHP
if ($senderNewBalance &amp;lt; 0) {
    return false;
}&lt;/p&gt;
&lt;p&gt;// Line 486-487: WRITE - set new balance (plain UPDATE)
$senderWallet-&amp;gt;setBalance($senderNewBalance);
$senderWalletId = $senderWallet-&amp;gt;save();&lt;/p&gt;
&lt;p&gt;// Line 497-502: Credit receiver (also plain SELECT + UPDATE)
$receiverWallet = self::getWallet($toUserId);
$receiverBalance = $receiverWallet-&amp;gt;getBalance();
$receiverNewBalance = $receiverBalance + $amount;
$receiverWallet-&amp;gt;setBalance($receiverNewBalance);
$receiverWalletId = $receiverWallet-&amp;gt;save();
```&lt;/p&gt;
&lt;p&gt;The `getWallet()` method (`YPTWallet.php:244`) calls `Wallet::getFromUser(…&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 `transferBalance()` method in `plugin/YPTWallet/YPTWallet.php` contains a Time-of-Check-Time-of-Use (TOCTOU) race condition. The method reads the sender&amp;#39;s wallet balance, checks sufficiency in PHP, then writes the new balance — all without database transactions or row-level locking. An attacker with multiple authenticated sessions can send concurrent transfer requests that all read the same stale balance, each passing the balance check independently, resulting in only one deduction being applied while the recipient is credited multiple times.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerable code path in `plugin/YPTWallet/YPTWallet.php:450-517`:&lt;/p&gt;
&lt;p&gt;```php
// Line 473-474: READ - fetch current balance (plain SELECT, no FOR UPDATE)
$senderWallet = self::getWallet($fromUserId);
$senderBalance = $senderWallet-&amp;gt;getBalance();
$senderNewBalance = $senderBalance - $amount;&lt;/p&gt;
&lt;p&gt;// Line 477: CHECK - verify sufficient funds in PHP
if ($senderNewBalance &amp;lt; 0) {
    return false;
}&lt;/p&gt;
&lt;p&gt;// Line 486-487: WRITE - set new balance (plain UPDATE)
$senderWallet-&amp;gt;setBalance($senderNewBalance);
$senderWalletId = $senderWallet-&amp;gt;save();&lt;/p&gt;
&lt;p&gt;// Line 497-502: Credit receiver (also plain SELECT + UPDATE)
$receiverWallet = self::getWallet($toUserId);
$receiverBalance = $receiverWallet-&amp;gt;getBalance();
$receiverNewBalance = $receiverBalance + $amount;
$receiverWallet-&amp;gt;setBalance($receiverNewBalance);
$receiverWalletId = $receiverWallet-&amp;gt;save();
```&lt;/p&gt;
&lt;p&gt;The `getWallet()` method (`YPTWallet.php:244`) calls `Wallet::getFromUser(…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-h54m-c522-h6qr</guid>
    </item>
  </channel>
</rss>
