CVE-2026-89253
nicheStored Cross-Site Scripting in WWBN AVideo Donation Link Field
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a stored cross-site scripting (XSS) flaw in the user 'donationLink' profile field. An authenticated user can set a crafted URL via objects/userUpdate.json.php because the saved value is validated only with FILTER_VALIDATE_URL (which accepts strings like http://evil.example/"onmouseover=alert(document.domain)//) and is later output with only strip_tags() and no quote encoding. The value is echoed unencoded into an href attribute in plugin/CustomizeUser/actionButton.php, which is included from view/modeYoutubeBottom.php on the watch page when the CustomizeUser 'allowDonationLink' option is enabled, so a visitor who hovers over the donation button on the attacker's video pages triggers the injected JavaScript. An attacker gains script execution in the browser of any visitor, including administrators, enabling actions such as stealing session cookies or performing privileged actions in the context of the victim. All AVideo deployments running code up to and including the named commit with the donation-link feature enabled are affected; the issue was unfixed at the time of reporting, with no known public proof-of-concept or reported in-the-wild exploitation.
What to do: No patched version was available at the time of reporting, so monitor the AVideo repository for a fix and upgrade beyond commit c3edcc274c389816d434acadac07ee78eaf330c1 once a patch is released. As an interim mitigation, disable the 'allowDonationLink' option in the CustomizeUser plugin (or restrict which users may set donationLink values), and audit existing user profiles for donationLink values containing quotes or event-handler text.
| WWBN AVideo | through commit c3edcc274c389816d434acadac07ee78eaf330c1 (unfixed at the time of reporting) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
WWBN AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a stored cross-site scripting vulnerability in the user 'donationLink' profile field. User::setDonationLink() (objects/user.php) stores the value and save() validates it only with filter_var(..., FILTER_VALIDATE_URL), which accepts strings such as http://evil.example/"onmouseover=alert(document.domain)//, while getDonationLink() applies only strip_tags() and does not encode double quotes. plugin/CustomizeUser/actionButton.php echoes the value unencoded into an attribute, and that button is included from view/modeYoutubeBottom.php on the watch page when the CustomizeUser option allowDonationLink is enabled. An authenticated user who updates their own profile via objects/userUpdate.json.php can therefore break out of the href attribute and inject an event handler that executes JavaScript in the browser of any visitor—including an administrator—who views the attacker's videos and interacts with (for example, hovers over) the donation button. The issue was unfixed at the time of reporting.
- Weakness
- CWE-79
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.