criticalCVSS 9.6Vulnerability

GHSA-8whc-2wmv-ww35

# Unauthenticated Stored DOM XSS via `page_title` Broadcast in AVideo YPTSocket Plugin ## Summary A stored DOM Cross-Site Scripting vulnerability (CWE-79) in the AVideo YPTSocket plugin lets any unauthenticated remote attacker execute arbitrary JavaScript in the authenticated origin of every administrator currently viewing a page that renders the YPTSocket online-users debug panel. `plugin/YPTSocket/getWebSocket.json.php` issues a signed WebSocket token to any anonymous caller, and `MessageSQLiteV2::onOpen` at `plugin/YPTSocket/MessageSQLiteV2.php` lines 91 and 110 reads the attacker-controlled `webSocketSelfURI` and `page_title` query parameters from the WebSocket connection URL with no validation. Both values persist into the in-memory SQLite `connections` table and broadcast inside the `users_id_online` array sent to every connected client; on the client, `plugin/YPTSocket/script.js::updateSocketUserCard` interpolates the broadcast `page_title` into an HTML template literal that is passed to jQuery `$.append(html)`, which parses attacker bytes into live DOM nodes including `<img>` with inline event handlers. ## Details `plugin/YPTSocket/getWebSocket.json.php` issues a WebSocket token to any caller; the only gate is `AVideoPlugin::isEnabledByName("YPTSocket")`. The token-issuance helper `getEncryptedInfo()` at `plugin/YPTSocket/functions.php:21-24` writes `$_REQUEST['webSocketSelfURI']` directly into the per-token state without validation: ```php // plugin/YPTSocket/functions.php:21-24 if (!empty($_REQUEST['webSocketSelfURI'])) { $msgObj->selfURI = $_REQUEST['webSocketSelfURI']; } else { $msgObj->selfURI = getSelfURI(); } ``` On WebSocket open, `MessageSQLiteV2::onOpen` reads `webSocketSelfURI` and `page_title` from the connection URL query string and persists both verbatim into the in-memory SQLite `connections` table: ```php // plugin/YPTSocket/MessageSQLiteV2.php:91 and :110 $client['selfURI'] = $wsocketGetVars['webSocketSelfURI']; // l

Properties

ghsa_id
GHSA-8whc-2wmv-ww35
severity
critical
summary
WWBN AVideo: Unauthenticated Stored DOM Cross-Site Scripting via Per-Client Metadata Broadcast in YPTSocket Plugin
cvss_score
9.6
cve_id
GHSA-8whc-2wmv-ww35
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L
is_ghsa_only
true
ghsa_published
2026-06-04T18:57:50Z
source_url
https://github.com/advisories/GHSA-8whc-2wmv-ww35
ghsa_updated
2026-06-04T18:57:51Z

Related Entities (4)

AFFECTS (1)

[Software]composer/WWBN/AVideo

HAS_WEAKNESS (1)

[Weakness]Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]composer/WWBN/AVideo

Explore deeper with Ninja Signal's threat intelligence graph