Mar 30, 2026·5 min read·23 visits
Missing authorization checks in AVideo <= 26.0 allow unauthenticated extraction of sensitive data, including PayPal logs and user records, via exposed JSON endpoints.
WWBN AVideo versions up to and including 26.0 suffer from a systematic authorization failure (CWE-862). Unauthenticated attackers can query multiple JSON endpoints across various plugins to extract sensitive system, financial, and user data. The vulnerability resides in the omission of access control checks within data table listing scripts.
WWBN AVideo, an open-source broadcast network platform, implements an extensible plugin architecture to handle various auxiliary features such as payments, live streaming, and AI transcription. The vulnerability exists within the administrative backend components of these plugins, specifically affecting versions up to and including 26.0.
The platform exhibits a systematic missing authorization flaw (CWE-862) across at least 19 distinct plugin endpoints. These endpoints handle data presentation for administrative tables and directly execute database queries to populate data views. The application exposes these administrative interfaces to the public internet by default.
Because the core bootstrapping configuration does not enforce global authentication middleware for API or JSON endpoints, the application relies on component-level authorization checks. The developers omitted these checks in the list.json.php files, creating a direct, unauthenticated data exposure vector.
The root cause of this vulnerability is the absence of access control validations at the entry point of the data listing controllers. AVideo uses a standard CRUD paradigm where database tables are managed by specific files for adding, deleting, and listing records.
While the files responsible for modifying state typically implement administrative authorization checks, the scripts designated for rendering data tables do not. When a client requests these endpoints, the PHP script initializes the environment via configuration.php but immediately proceeds to execute data retrieval logic without verifying the user session.
The vulnerable endpoints invoke static methods on classes extending the ObjectYPT core class, predominantly the getAll() method. This method acts as an Object-Relational Mapping (ORM) wrapper that executes an unrestricted SELECT * query against the corresponding plugin's database table, serializes the result set into JSON, and returns it to the client.
An analysis of the vulnerable source code reveals a consistent structural flaw across multiple plugins. The application logic directly exposes database contents to any HTTP GET or POST request targeting the endpoint.
In the unpatched state, the list.json.php file within the PayPalYPT plugin imports the necessary class definitions and immediately fetches all records. The application serializes the array returned by the static method and echoes it to the output buffer without validating the request context.
<?php
require_once $global['systemRootPath'] . 'plugin/PayPalYPT/Objects/PayPalYPT_log.php';
header('Content-Type: application/json');
$rows = PayPalYPT_log::getAll();
$total = PayPalYPT_log::getTotal();
echo json_encode(['data' => $rows]);
?>The vendor remediated this vulnerability in commit 1729a955f8de7e26552eb728b3d1e6f4b1b9352e by implementing an explicit authorization gate. The patch introduces a conditional check utilizing the User::isAdmin() method before any data access operations occur, terminating the script execution if the check fails.
<?php
require_once $global['systemRootPath'] . 'plugin/PayPalYPT/Objects/PayPalYPT_log.php';
header('Content-Type: application/json');
+ if (!User::isAdmin()) {
+ die(json_encode(['error' => true, 'msg' => "You can't do this"]));
+ }
$rows = PayPalYPT_log::getAll();
$total = PayPalYPT_log::getTotal();
echo json_encode(['data' => $rows]);
?>Exploitation of this vulnerability requires no specialized tools, prior authentication, or specific network positioning beyond reachability to the target AVideo web interface. The attacker only needs to identify a running instance of AVideo version 26.0 or earlier.
The attacker issues a standard HTTP GET request directly to one of the unprotected list.json.php endpoints. Navigating to /plugin/PayPalYPT/View/PayPalYPT_log/list.json.php initiates the vulnerable code path and triggers the database query.
The server processes the request and responds with an HTTP 200 OK status, returning a JSON payload containing the complete contents of the targeted database table. The attacker can automate this process using simple scripts to enumerate and extract all exposed tables across the 19 vulnerable plugins.
The security impact of this vulnerability is high due to the volume and sensitivity of the exposed information. Attackers gain unauthorized read access to critical financial and operational data that administrators assume is protected behind authentication barriers.
The exposure of the PayPalYPT_log and Btc_payments tables compromises payment gateway configurations, transaction histories, and active PayPal tokens. Attackers can leverage these tokens to manipulate financial transactions or access connected financial accounts associated with the platform deployment.
In addition to financial data, the vulnerability exposes user privacy records and internal system intelligence. Endpoints such as Users_extra_info and Live_servers reveal personally identifiable information and infrastructure configurations, enabling further targeted attacks against the user base or the underlying server environment.
The WWBN AVideo maintainers addressed this vulnerability in development via commit 1729a955f8de7e26552eb728b3d1e6f4b1b9352e. System administrators must upgrade their AVideo installations to the patched release succeeding version 26.0 immediately to secure their environments.
If an immediate upgrade is unfeasible, administrators can manually apply the patch by editing the affected list.json.php files across the plugin/ directory. The remediation requires inserting the User::isAdmin() check at the top of each file, directly following the inclusion of the core configuration files.
Security teams should conduct a thorough audit of the AVideo filesystem to identify any custom or third-party plugins that implement similar endpoints. Any file exposing an unrestricted data retrieval method call must be retrofitted with identical access control validations to prevent variant attacks.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
AVideo WWBN | <= 26.0 | Post-26.0 (Commit 1729a955f8de7e26552eb728b3d1e6f4b1b9352e) |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-862 |
| Attack Vector | Network |
| CVSS Score | 7.5 |
| Impact | High (Data Confidentiality) |
| Exploit Status | poc |
| Authentication Required | None |
The software does not perform an authorization check when an actor attempts to access a resource or perform an action.
CVE-2026-55699 (also identified as GHSA-4gxm-v5v7-fqc4) is a critical path traversal and arbitrary directory deletion vulnerability in the pnpm package manager. The issue exists because the manifest validation process fails to prevent relative path segments within the package 'bin' keys. When a malicious package containing structured path traversal markers is globally installed and later manipulated, pnpm resolves the target paths through path.join() and passes the resolved paths to a recursive deletion function, resulting in arbitrary directory removal.
A path traversal vulnerability in pnpm stage download allows malicious registries or compromised package manifests to overwrite arbitrary files on the victim's filesystem via unvalidated package name and version fields.
GHSA-WW5P-J6CJ-6MQQ is a technical credential exposure vulnerability in Nezha Dashboard prior to version 2.2.5. The vulnerability allows authenticated administrative users or actors possessing scoped read-only Personal Access Tokens (PATs) to exfiltrate plaintext third-party API credentials, secret keys, and webhook authorization headers due to a lack of data redaction during API object serialization.
GHSA-FR4H-3CPH-29XV is a high-severity path traversal vulnerability in pnpm and its Rust-based port pacquet. The flaw manifests when using the hoisted node-linker configuration, allowing an attacker to manipulate the lockfile to resolve relative traversal sequences or target reserved subdirectories, leading to arbitrary file write or execution hijacking.
A path traversal vulnerability in the pnpm package manager's 'patch-remove' command allows an attacker to delete arbitrary files outside the patches directory. By manipulating configuration files like package.json, an attacker can specify a traversal path that the application deletes recursively without validating the path's containment.
A high-severity path traversal vulnerability exists in the pnpm package manager. By crafting a malicious lockfile (pnpm-lock.yaml) with path traversal characters in the configDependencies block, an attacker can create arbitrary directories and symlinks outside the project's node_modules/.pnpm-config directory. This exploitation happens automatically during pnpm installation, even when executing with scripts disabled via the --ignore-scripts flag.