<?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://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-09T04:37:08.793860+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" 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://vulnerability.circl.lu/vuln/fkie_cve-2026-34395</id>
    <title>fkie_cve-2026-34395</title>
    <updated>2026-10-09T04:37:08.796630+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 26.0 and prior, the plugin/YPTWallet/view/users.json.php endpoint returns all platform users with their personal information and wallet balances to any authenticated user. The endpoint checks User::isLogged() but does not check User::isAdmin(), so any registered user can dump the full user database. At time of publication, there are no publicly available patches.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-34395"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-77jp-mgcw-rfmr</id>
    <title>GHSA-77jp-mgcw-rfmr — AVideo vulnerable to Mass User PII Disclosure via Missing Authorization in YPTWallet users.json.php</title>
    <updated>2026-10-09T04:37:08.796720+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: wwbn/avideo</p>
<p>**Severity:** High
**CWE:** CWE-862 (Missing Authorization)</p>
<p>### Summary</p>
<p>The `plugin/YPTWallet/view/users.json.php` endpoint returns all platform users with their personal information and wallet balances to any authenticated user. The endpoint checks `User::isLogged()` but does not check `User::isAdmin()`, so any registered user can dump the full user database.</p>
<p>### Details</p>
<p>The authorization check at `plugin/YPTWallet/view/users.json.php:8`:</p>
<p>```php
if (!User::isLogged()) {
    die("Is not logged");
}
```</p>
<p>The query in `YPTWallet::getAllUsers()` selects all columns from both tables:</p>
<p>```php
$sql = "SELECT w.*, u.*, u.id as user_id, IFNULL(balance, 0) as balance FROM users u "
    . " LEFT JOIN wallet w ON u.id = w.users_id WHERE 1=1 ";
```</p>
<p>The `cleanUpRowFromDatabase()` function strips fields matching `/pass/i` (removes `password` and `recoverPass`), but all other PII fields remain: `email`, `phone`, `address`, `zip_code`, `country`, `region`, `city`, `first_name`, `last_name`, `birth_date`, `isAdmin`, `analyticsCode`, `donationLink`, and `balance`.</p>
<p>Other endpoints in the same directory (`saveBalance.php`, `adminManageWallets.php`, `pendingRequests.json.php`) all check `User::isAdmin()`.</p>
<p>### Proof of Concept</p>
<p>```python
import requests</p>
<p>TARGET = "https://your-avideo-instance.com"</p>
<p># Step 1: Login as any regular (non-admin) user
session = requests.Session()
session.post(f"{TARGET}/objects/login.json.php", data={
    "user": "regular_user",
    "pass": "regular_password"
}…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-77jp-mgcw-rfmr"/>
  </entry>
</feed>
