AVideo through commit c3edcc274c389816d434acadac07ee78eaf330c1 contains a stored cross-site scripting vulnerability
AVideo's YPTWallet plugin lets any logged-in user hide script code inside a cryptocurrency withdrawal request. When an administrator opens that request to review it, the hidden code runs inside the administrator's own logged-in session and can carry out admin actions on their behalf.
- Severity
- HighCVSS 3.1 · 8.7 · vulncheck.com
- Fix
- Release fix not confirmedSource revisions listed; check the advisory
- Weakness
- CWE-79Cross-site Scripting (XSS)
- Affects
- AVideo
- Exploited
- Not confirmedNo confirmation recorded
- CISA SSVC
- No known exploitationAutomatable: no · Technical impact: partial
- EU ID
- EUVD-2026-76061ENISA vulnerability database
How it works
- A logged-in AVideo user who has a wallet balance submits a cryptocurrency wallet value through the YPTWallet plugin's configuration option.
- AVideo encodes that value with base64 but never strips or escapes HTML and script markup from it.
- The value is later decoded and written into the wallet_log.information field attached to a withdrawal request.
- When an administrator opens the pending withdrawal requests page, AVideo displays that stored value as raw HTML instead of plain text, so any script hidden inside it runs inside the administrator's browser and can send requests to the site as the administrator.
What to do
If you run WWBN/AVideo with the YPTWallet plugin enabled at commit c3edcc274c389816d434acadac07ee78eaf330c1 or earlier, compare your deployed commit against the GHSA-fvp5-q9jp-29mx advisory to see whether you fall in the affected range. Check whether YPTWallet is enabled and whether users can submit withdrawal requests on your site, since the flaw only triggers through that feature. Open the pending withdrawal requests and history pages as an administrator and look at the stored information field for any HTML or script markup instead of a plain wallet address.
Watch the GHSA-fvp5-q9jp-29mx advisory for a patched release, since WWBN had not shipped a fix as of the report. Review existing pending withdrawal and history log entries in YPTWallet for HTML or script content in the wallet information field, since that indicates a planted stored script rather than a real address.
Technical details
CVE-2026-89249 is a stored XSS in AVideo's YPTWallet plugin. Wallet::setCrypto_wallet_address base64-encodes the CryptoWallet POST value but never runs it through htmlspecialchars. manualWithdrawFunds.json.php later decodes that value and concatenates it into the $emailMessage string that WalletLog::addLog stores in wallet_log.information. pendingRequests.php's bootgrid formatter renders row.information as HTML rather than as text, so markup in the stored value executes in the administrator's browser when the pending requests page (or history.php) is opened, allowing same-origin fetch requests as the administrator. Exploitation requires a logged-in account able to complete a manual withdrawal and requires YPTWallet enabled.
CVSS 3.1 scores it 8.7 high; NVD lists a CVSS 4.0 score of 9.3 critical. No fixed version was available at time of reporting.
Severity breakdown
- Attack vector Network Requires network access to the vulnerable service
- Attack complexity Low Low complexity under the assessed conditions
- Privileges required Low Attacker needs a basic user account
- User interaction Required Requires another user to take an action
- Scope Changed Impact crosses a security authority boundary
- Confidentiality impact High Sensitive data can be exposed with serious impact
- Integrity impact High Protected data can be changed with serious impact
- Availability impact None No availability impact
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N Open in FIRST.org calculatorReferences
- github.com · GHSA-fvp5-q9jp-29mx vendor advisory vendor-advisory
- vulncheck.com · avideo-yptwallet-stored-xss-via-cryptowallet-configuration third party advisory technical description third-party-advisory NVD
- cve.org · CVERecord vdb entry
- tenable.com · CVE-2026-89249 third party advisory vdb entry
- cvefeed.io · CVE-2026-89249 third party advisory vdb entry
- euvd.enisa.europa.eu · EUVD-2026-76061 vdb entry
- cveawg.mitre.org · CVE-2026-89249