AVideo: Missing CSRF Protection on State-Changing JSON Endpoints Enables Forced Comment Creation, Vote Manipulation, and Category Asset Deletion
WWBN AVideo is an open source video platform. In versions 29.0 and prior, multiple AVideo JSON endpoints under `objects/` accept state-changing requests via `$_REQUEST`/`$_GET` and persist changes tied to the caller's session user, without any anti-CSRF token, origin check, or referer check. A malicious page visited by a logged-in victim can silently cast/flip the victim's like/dislike on any comment (`objects/comments_like.json.php`), post a comment authored by the victim on any video, with attacker-chosen text (`objects/commentAddNew.json.php`), and/or delete assets from any category (`objects/categoryDeleteAssets.json.php`) when the victim has category management rights. Each endpoint is reachable from a browser via a simple `` tag or form submission, so exploitation only requires the victim to load an attacker-controlled HTML resource. Commit 7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c contains a fix.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-40928
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 03:04 UTC · Revision 1
Source evidence
AVideo: Missing CSRF Protection on State-Changing JSON Endpoints Enables Forced Comment Creation, Vote Manipulation, and Category Asset Deletion
core-osv · Original sourcePublished 21 Apr 2026, 22:14 UTC
WWBN AVideo is an open source video platform. In versions 29.0 and prior, multiple AVideo JSON endpoints under `objects/` accept state-changing requests via `$_REQUEST`/`$_GET` and persist changes tied to the caller's session user, without any anti-CSRF token, origin check, or referer check. A malicious page visited by a logged-in victim can silently cast/flip the victim's like/dislike on any comment (`objects/comments_like.json.php`), post a comment authored by the victim on any video, with attacker-chosen text (`objects/commentAddNew.json.php`), and/or delete assets from any category (`objects/categoryDeleteAssets.json.php`) when the victim has category management rights. Each endpoint is reachable from a browser via a simple `` tag or form submission, so exploitation only requires the victim to load an attacker-controlled HTML resource. Commit 7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c contains a fix.
osv:CVE-2026-40928
Complete source record
{
"id": "2a292dc05fb8377495bdbabffb60186ac0ba925228ebe45bfd905cf9b771f2ab",
"url": "https://osv.dev/vulnerability/CVE-2026-40928",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "AVideo: Missing CSRF Protection on State-Changing JSON Endpoints Enables Forced Comment Creation, Vote Manipulation, and Category Asset Deletion",
"summary": "WWBN AVideo is an open source video platform. In versions 29.0 and prior, multiple AVideo JSON endpoints under `objects/` accept state-changing requests via `$_REQUEST`/`$_GET` and persist changes tied to the caller's session user, without any anti-CSRF token, origin check, or referer check. A malicious page visited by a logged-in victim can silently cast/flip the victim's like/dislike on any comment (`objects/comments_like.json.php`), post a comment authored by the victim on any video, with attacker-chosen text (`objects/commentAddNew.json.php`), and/or delete assets from any category (`objects/categoryDeleteAssets.json.php`) when the victim has category management rights. Each endpoint is reachable from a browser via a simple `` tag or form submission, so exploitation only requires the victim to load an attacker-controlled HTML resource. Commit 7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c contains a fix.",
"evidence": "osv:CVE-2026-40928",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-40928",
"aliases": [
"CVE-2026-40928",
"GHSA-x2pw-9c38-cp2j"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/wwbn/avideo",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "29.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"29.0",
"26.0",
"25.0",
"24.0",
"22.0",
"21.0",
"18.0",
"14.3.1",
"14.3",
"12.4",
"11.6",
"11.5",
"11.1.1",
"11.1",
"11",
"10.8",
"8.9.1",
"8.9",
"8.7",
"8.6",
"8.5",
"8.1",
"7.8",
"7.7",
"7.6",
"7.4",
"7.3",
"7.2",
"4.0",
"3.4",
"2.7",
"2.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40928.json"
}
}
],
"modified": "2026-10-28T02:30:53.263949092Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40928.json",
"https://github.com/WWBN/AVideo/security/advisories/GHSA-x2pw-9c38-cp2j",
"https://nvd.nist.gov/vuln/detail/CVE-2026-40928",
"https://github.com/WWBN/AVideo/commit/7aaad601bd9cd7b993ba0ee1b1bea6c32ee7b77c"
],
"provider_metadata": {
"cwe_ids": [
"CWE-352"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40928.json"
}
},
"related_cves": [
{
"value": "CVE-2026-40928",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 522053,
"published_at": "2026-04-21T22:14:15.472+00:00"
}