Description
WWBN AVideo is an open source video platform. Versions prior to 29.0 contain a stored DOM Cross-Site Scripting vulnerability in the YPTSocket plugin. Any unauthenticated remote attacker can 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. Successful attackers can can read non-HttpOnly cookies and the CSRF token rendered into the admin dashboard, issue authenticated requests to any admin-only endpoint, exfiltrate the admin dashboard DOM, and chain into any admin-context mutation. When the victim is an AVideo administrator, the attacker turns a single anonymous WebSocket connection into full administrative takeover via the admin's own session. This issue has been patched by https://github.com/WWBN/AVideo/commit/8be71e53ccbe9b84b30870db386fb4d2b11e1c16.
Published: 2026-07-15
Score: 9.6 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A stored DOM Cross‑Site Scripting flaw exists in the YPTSocket plugin of the AVideo open‑source video platform. Any unauthenticated remote attacker can execute arbitrary JavaScript in the authenticated origin of every administrator currently viewing a page that renders the YPTSocket online‑users debug panel. This occurs when the attacker calls the getWebSocket.json.php endpoint, receives a signed WebSocket token, and then opens a WebSocket connection supplying attacker‑controlled query parameters such as webSocketSelfURI and page_title. The MessageSQLiteV2 class in the plugin reads these parameters from the connection URL without validation, persists them in an in‑memory SQLite table, and broadcasts the page_title payload to every connected client. On the client side, updateSocketUserCard interpolates the received page_title into an HTML template literal and appends it to the DOM with jQuery’s $.append. Because no escaping occurs, the attacker can inject arbitrary HTML and JavaScript, including event handlers on an <img> tag. When an administrator views the debug panel, the injected script runs with the administrator’s credentials, allowing the attacker to read non‑HttpOnly cookies and the CSRF token, issue authenticated requests to admin‑only endpoints, exfiltrate the dashboard DOM, and ultimately gain full administrative control of the system. The weakness is a classic Stored XSS (CWE‑79).

Affected Systems

All releases of WWBN AVideo prior to version 29.0 are affected, as the flaw resides in the YPTSocket plugin’s WebSocket handling code. Users running any supporting edition of the platform before the 29.0 release must consider an update or mitigation.

Risk and Exploitability

The CVSS score of 9.6 signals a critical impact, while the EPSS score of less than 1 % suggests that, to date, exploitation is rare. The vulnerability is not listed in the CISA KEV catalog. An attacker can exploit the publicly accessible WebSocket endpoint without authentication, craft a malicious page_title value, and cause any administrator currently on the online‑users debug panel to execute the payload. With the attacker’s code running under the administrator’s session, full administrative takeover is attainable with a single anonymous WebSocket connection.

Generated by OpenCVE AI on July 31, 2026 at 02:33 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to AVideo version 29.0 or later, which removes the unauthenticated WebSocket token issuance and sanitizes broadcast data.
  • If immediate upgrade is not possible, restrict access to the getWebSocket.json.php endpoint so that tokens are only issued to authenticated users.
  • Validate and properly escape all user‑controlled parameters, namely webSocketSelfURI and page_title, before storing them or inserting them into any HTML template on the client side.

Generated by OpenCVE AI on July 31, 2026 at 02:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8whc-2wmv-ww35 WWBN AVideo: Unauthenticated Stored DOM Cross-Site Scripting via Per-Client Metadata Broadcast in YPTSocket Plugin
History

Thu, 16 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 15 Jul 2026 23:30:00 +0000

Type Values Removed Values Added
First Time appeared Wwbn
Wwbn avideo
Vendors & Products Wwbn
Wwbn avideo

Wed, 15 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
Description WWBN AVideo is an open source video platform. Versions prior to 29.0 contain a stored DOM Cross-Site Scripting vulnerability in the YPTSocket plugin. Any unauthenticated remote attacker can 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. Successful attackers can can read non-HttpOnly cookies and the CSRF token rendered into the admin dashboard, issue authenticated requests to any admin-only endpoint, exfiltrate the admin dashboard DOM, and chain into any admin-context mutation. When the victim is an AVideo administrator, the attacker turns a single anonymous WebSocket connection into full administrative takeover via the admin's own session. This issue has been patched by https://github.com/WWBN/AVideo/commit/8be71e53ccbe9b84b30870db386fb4d2b11e1c16.
Title AVideo: Unauthenticated Stored DOM Cross-Site Scripting via Per-Client Metadata Broadcast in YPTSocket Plugin
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-16T15:12:06.414Z

Reserved: 2026-06-15T15:30:40.318Z

Link: CVE-2026-54458

cve-icon Vulnrichment

Updated: 2026-07-16T14:46:46.027Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T02:45:04Z

Weaknesses
  • CWE-79

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