Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Unauthenticated network reach with no user interaction and trivial broadcast (AV:N/AC:L/PR:N/UI:N); scope changes as code runs in other users' browsers (S:C), enabling session theft and privileged admin actions (C/I/A:H).
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
4DescriptionGitHub Advisory
WWBN AVideo is an open source video platform. In versions 29.0 and prior, the YPTSocket plugin's WebSocket server relays attacker-supplied JSON message bodies to every connected client without sanitizing the msg or callback fields. On the client side, plugin/YPTSocket/script.js contains two eval() sinks fed directly by those relayed fields (json.msg.autoEvalCodeOnHTML at line 568 and json.callback at line 95). Because tokens are minted for anonymous visitors and never revalidated beyond decryption, an unauthenticated attacker can broadcast arbitrary JavaScript that executes in the origin of every currently-connected user (including administrators), resulting in universal account takeover, session theft, and privileged action execution. Commit c08694bf6264eb4decceb78c711baee2609b4efd contains a fix.
AnalysisAI
Unauthenticated cross-user JavaScript execution in WWBN AVideo (versions 29.0 and prior) lets a remote attacker broadcast arbitrary code to every connected browser through the YPTSocket WebSocket plugin. Because anonymous visitors are issued valid socket tokens and the server relays the attacker-controlled msg and callback fields verbatim into client-side eval() sinks, any visitor can execute JavaScript in the origin of all connected users - including administrators - yielding universal account takeover, session theft, and privileged action execution. Publicly available exploit code exists (SSVC: PoC) though the flaw is not listed in CISA KEV, and EPSS is currently low at 0.17%.
Technical ContextAI
The affected component is the YPTSocket real-time messaging plugin bundled with AVideo (cpe:2.3:a:wwbn:avideo), which runs a Ratchet-style PHP WebSocket server (Message.php / MessageSQLite.php / MessageSQLiteV2.php) paired with a browser client (plugin/YPTSocket/script.js). The root cause is CWE-94 (Code Injection): the browser client passes two server-relayed, attacker-influenced JSON fields into eval() - json.msg.autoEvalCodeOnHTML at script.js line 568 and json.callback at line 95. autoEvalCodeOnHTML is intended as a trusted server-to-client (php-origin) feature, but the server's onMessage default branch rebroadcasts guest-supplied payloads without stripping these fields. Token issuance compounds this: getWebSocket.json.php returns an encrypted token to anyone if the plugin is merely enabled, and getEncryptedInfo() sets from_users_id=0 / isAdmin=false for guests; the onOpen handler accepts the token purely on successful decryption, so no authenticated principal is ever required.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - no tagged release version is provided in the source data, so apply commit c08694bf6264eb4decceb78c711baee2609b4efd (https://github.com/WWBN/AVideo/commit/c08694bf6264eb4decceb78c711baee2609b4efd) or the next tagged release above 29.0 that contains it, and consult the advisory at https://github.com/WWBN/AVideo/security/advisories/GHSA-gph2-j4c9-vhhr. The fix strips eval-able fields from browser/guest messages: it unsets json['msg']['autoEvalCodeOnHTML'] and drops any json['callback'] that is not a valid JS identifier unless the message originates from the PHP/CLI side (isCommandLineInterface or sentFrom==='php'). If you cannot patch immediately, the most effective compensating control is to disable the YPTSocket plugin (getWebSocket.json.php only issues tokens when the plugin is enabled), which removes the attack surface entirely at the cost of losing real-time features such as live chat, viewer counts, and notifications. Alternatively, block or firewall external access to the WebSocket server port and the getWebSocket.json.php endpoint so only trusted networks can obtain tokens; this breaks real-time functionality for remote/public users. Do not rely on authentication as a control here, since token issuance and acceptance do not require authentication.
A cross-site scripting (xss) vulnerability exists in the functiongetOpenGraph videoName functionality of WWBN AVideo 11.
An issue in WWBN AVideo v.12.4 through v.14.2 allows a remote attacker to execute arbitrary code via the systemRootPath
A directory traversal vulnerability exists in the unzipDirectory functionality of WWBN AVideo 11.6 and dev master commit
An insufficient entropy vulnerability exists in the salt generation functionality of WWBN AVideo dev master commit 15fed
Unauthenticated SQL injection in AVideo before 24.0.
OS injection vulnerability in World Wide Broadcast Network AVideo version before 12.4, allows attackers to execute arbit
A reflected cross-site scripting (xss) vulnerability exists in the charts tab selection functionality of WWBN AVideo 11.
A cross-site scripting (xss) vulnerability exists in the channelBody.php user name functionality of WWBN AVideo 11.6 and
A cross-site scripting (xss) vulnerability exists in the videoAddNew functionality of WWBN AVideo 11.6 and dev master co
An insufficient entropy vulnerability exists in the userRecoverPass.php recoverPass generation functionality of WWBN AVi
WWBN AVideo is an open source video platform. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable
AVideo is an open source video platform. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low
Same weakness CWE-94 – Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-24479
GHSA-gph2-j4c9-vhhr