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)
AFFECTS (1)
HAS_WEAKNESS (1)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph