AVideo TopMenu Plugin - Stored Cross-Site Scripting via Unescaped Menu Item Fields
Description
AVideo TopMenu plugin through version 26.0 contains a stored cross-site scripting vulnerability in menu item rendering due to missing output encoding of icon classes, URLs, and text labels. Attackers can inject malicious JavaScript through unescaped menu item fields that execute for all site visitors, potentially stealing session cookies or performing unauthorized actions.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
1Patches
Vulnerability mechanics
Root cause
"Missing output encoding (htmlspecialchars) on menu item icon classes, URLs, and text labels allows stored cross-site scripting."
Attack vector
An attacker who gains admin access can save a crafted menu item with malicious payloads in the icon, URL, or text fields, which are rendered unescaped on every public page via plugin hooks [ref_id=1]. Because `menuItemSave.json.php` lacks CSRF token validation, a cross-origin POST from an attacker-controlled page can create the malicious menu item if an admin visits that page while logged in, chaining CSRF with stored XSS [ref_id=1]. The injected JavaScript executes for all site visitors, enabling session cookie theft, phishing redirects, or actions on behalf of authenticated users [CWE-79].
Affected code
The TopMenu plugin's `HTMLMenuRight.php:24` injects the icon class directly (`<i class="<?php echo $value2['icon'] ?>">`), `HTMLMenuRight.php:40` and `HTMLMenuLeft.php:32` render the URL without encoding, and `index.php:49` echoes the menu item text raw. The `menuItemSave.json.php` endpoint stores these values without sanitization and lacks CSRF token validation.
What the fix does
The advisory recommends applying `htmlspecialchars()` with `ENT_QUOTES` and UTF-8 encoding to all outputs of `$value2['finalURL']`, `$value2['icon']`, and `$menuItem->getText()` in `HTMLMenuRight.php`, `HTMLMenuLeft.php`, `floatMenu.php`, and `index.php` [ref_id=1]. This ensures that any HTML or JavaScript injected into those fields is rendered as harmless text rather than executed by the browser. No patch has been published by the vendor at the time of the advisory.
Preconditions
- authAttacker must have admin access to the AVideo instance, or must lure an authenticated admin to visit a malicious page that submits a CSRF POST to menuItemSave.json.php
- configThe TopMenu plugin must be installed and active on the AVideo instance
- inputThe attacker's payload is stored in the database and rendered on every page via plugin hooks
Generated on Jun 21, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
2- github.com/WWBN/AVideo/security/advisories/GHSA-gmpc-fxg2-vcmqmitrevendor-advisory
- www.vulncheck.com/advisories/avideo-topmenu-plugin-stored-cross-site-scripting-via-unescaped-menu-item-fieldsmitrethird-party-advisory
News mentions
0No linked articles in our index yet.