highCVSS 7.1Vulnerability

GHSA-ffw8-fwxp-h64w

## Summary Three admin-only JSON endpoints — `objects/categoryAddNew.json.php`, `objects/categoryDelete.json.php`, and `objects/pluginRunUpdateScript.json.php` — enforce only a role check (`Category::canCreateCategory()` / `User::isAdmin()`) and perform state-changing actions against the database without calling `isGlobalTokenValid()` or `forbidIfIsUntrustedRequest()`. Peer endpoints in the same directory (`pluginSwitch.json.php`, `pluginRunDatabaseScript.json.php`) do enforce the CSRF token, so the missing checks are an omission rather than a design choice. An attacker who lures a logged-in admin to a malicious page can create, update, or delete categories and force execution of any installed plugin's `updateScript()` method in the admin's session. ## Details AVideo's CSRF defense is not applied globally — each endpoint must explicitly call `isGlobalTokenValid()` (defined in `objects/functions.php:2313`), which verifies `$_REQUEST['globalToken']`. A search across the codebase shows 18 files that correctly invoke `forbidIfIsUntrustedRequest()` or `isGlobalTokenValid()`, while the three endpoints below do not. ### 1. `objects/categoryAddNew.json.php:18` — CSRF create/overwrite category ```php 18 if (!Category::canCreateCategory()) { 19 $obj->msg = __("Permission denied"); 20 die(json_encode($obj)); 21 } 22 23 $objCat = new Category(intval(@$_POST['id'])); 24 $objCat->setName($_POST['name']); 25 $objCat->setClean_name($_POST['clean_name']); 26 $objCat->setDescription($_POST['description']); 27 $objCat->setIconClass($_POST['iconClass']); 28 $objCat->setSuggested($_POST['suggested']); 29 $objCat->setParentId($_POST['parentId']); 30 $objCat->setPrivate($_POST['private']); 31 $objCat->setAllow_download($_POST['allow_download']); 32 $objCat->setOrder($_POST['order']); 33 $obj->categories_id = $objCat->save(); ``` `Category::canCreateCategory()` (`objects/category.php:620-630`) returns true for any admin. Because the row is loaded via `new Cate

Properties

ghsa_id
GHSA-ffw8-fwxp-h64w
severity
high
summary
WWBN AVideo has Multiple CSRF Vulnerabilities in Admin JSON Endpoints (Category CRUD, Plugin Update Script)
cvss_score
7.1
cve_id
GHSA-ffw8-fwxp-h64w
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
is_ghsa_only
true
ghsa_published
2026-04-14T23:12:39Z
source_url
https://github.com/advisories/GHSA-ffw8-fwxp-h64w
ghsa_updated
2026-04-14T23:12:40Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]composer/WWBN/AVideo

AFFECTS (1)

[Software]composer/WWBN/AVideo

HAS_WEAKNESS (1)

[Weakness]Cross-Site Request Forgery (CSRF)

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-ffw8-fwxp-h64w (CVSS 7.1) — Ninja Signal Threat Intelligence | Ninja Signal