CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-33499

CVE-2026-33499: Reflected Cross-Site Scripting in WWBN AVideo Password Forms

Alon Barad
Alon Barad
Software Engineer

Mar 23, 2026·6 min read·31 visits

Executive Summary (TL;DR)

Unsanitized `unlockPassword` parameter in AVideo <= 26.0 allows unauthenticated reflected XSS, enabling session hijacking and account takeover.

WWBN AVideo versions up to and including 26.0 suffer from a reflected Cross-Site Scripting (XSS) vulnerability. The application fails to sanitize the `unlockPassword` parameter in password-protected page templates, allowing unauthenticated attackers to execute arbitrary JavaScript in a victim's browser context.

Vulnerability Overview

WWBN AVideo, an open-source video platform, utilizes password-protected channels and videos to restrict content access. When a user attempts to access restricted content without prior authorization, the application serves an interstitial page requesting a password. This functionality is handled primarily by the view/forbiddenPage.php and view/warningPage.php template files.

A security vulnerability exists within the handling of the unlockPassword HTTP request parameter during the rendering of these templates. The application directly extracts the value from the $_REQUEST['unlockPassword'] superglobal and reflects it into the HTML output. The vulnerability is classified as CWE-79: Improper Neutralization of Input During Web Page Generation.

Because the application omits necessary output encoding mechanisms, an attacker can supply crafted HTML attributes or script tags within the unlockPassword parameter. When a victim loads the resulting URL, the application renders the attacker's payload as part of the page's Document Object Model (DOM), leading to arbitrary JavaScript execution in the context of the vulnerable origin.

Root Cause Analysis

The root cause of CVE-2026-33499 is the direct concatenation of untrusted user input into an HTML element attribute without prior sanitization. The vulnerability initiates in the view/forbiddenPage.php template. The script checks for the presence of the unlockPassword parameter within the $_REQUEST array. If present, it assigns the raw, unvalidated input to the local variable $value.

The application subsequently passes this $value variable as an argument to the getInputPassword() helper function, appending it to a string of HTML attributes. Specifically, the concatenation occurs as class="form-control" value="' . $value . '". The helper function, defined in objects/functions.php, receives these attributes and echoes them directly inside an HTML <input> tag.

The lack of output encoding at the point of reflection allows an attacker to break out of the intended attribute context. By prefixing their payload with a double-quote ("), the attacker terminates the value attribute early. The browser then interprets subsequent characters as new HTML attributes belonging to the <input> element, enabling the injection of event handlers like onfocus or onmouseover.

Code Analysis and Patch Walkthrough

Analyzing the source code reveals the precise data flow from the request superglobal to the final HTML render. In the vulnerable version of view/forbiddenPage.php, the logic explicitly extracts the parameter and builds the attribute string:

$value = '';
if (!empty($_REQUEST['unlockPassword'])) {
    $value = $_REQUEST['unlockPassword'];  // Flaw: No sanitization
}
echo getInputPassword('unlockPassword', 'class="form-control" value="' . $value . '"', __('Unlock Password'));

The getInputPassword() function then injects the $attributes string unmodified into the DOM:

function getInputPassword($id, $attributes = '', $placeholder = '') {
    // ...
    ?>
    <input id="<?php echo $id; ?>" name="<?php echo $id; ?>" type="password" placeholder="<?php echo $placeholder; ?>" <?php echo $attributes; ?>>
    <?php
}

The vendor remediation, applied in commit f154167251c9cf183ce09cd018d07e9352310457, introduces the standard PHP htmlspecialchars() function to encode the input before assignment.

// Patched Code block in view/forbiddenPage.php
if (!empty($_REQUEST['unlockPassword'])) {
    $value = htmlspecialchars($_REQUEST['unlockPassword'], ENT_QUOTES, 'UTF-8');
}

The utilization of ENT_QUOTES is the critical component of this fix. It ensures that both single and double quotes are converted to their corresponding HTML entities (e.g., &quot;). This prevents the attacker from terminating the value="..." attribute, forcing the browser to treat the entire payload strictly as the text value of the input field.

Exploitation Methodology

Exploiting this vulnerability requires an attacker to construct a targeted URL and deliver it to a victim. The attacker identifies a password-protected channel or video URL on the target AVideo instance. They then append the unlockPassword parameter containing the exploit payload to the query string.

The most reliable exploitation technique utilizes the autofocus and onfocus HTML attributes. By injecting " autofocus onfocus="alert(document.cookie), the attacker ensures immediate payload execution. The complete PoC URL takes the following form:

https://[Target]/channel/[User]?unlockPassword=" autofocus onfocus="alert(document.cookie)

When the victim's browser receives the HTTP response, it parses the manipulated <input> tag. The injected autofocus attribute commands the browser to automatically place the cursor inside the input field upon page load. This automatic focus event instantly triggers the injected onfocus event handler, executing the associated JavaScript without requiring the victim to click or type anything on the page itself.

Impact Assessment

Successful exploitation of this reflected XSS vulnerability grants the attacker the ability to execute arbitrary JavaScript within the security context of the victim's session on the AVideo platform. This violates the Same-Origin Policy (SOP) restrictions that normally protect cross-site data interactions. The primary and most immediate impact is session hijacking.

By executing a payload that reads document.cookie, an attacker can exfiltrate the victim's PHPSESSID token to an external server under their control. If the victim holds administrative privileges, the attacker can use the stolen session token to authenticate to the application as an administrator, granting them full control over the platform's configuration, users, and content.

Beyond session theft, the vulnerability facilitates forced actions and phishing. The injected script can issue asynchronous HTTP requests (via fetch or XMLHttpRequest) to perform state-changing operations on behalf of the user, such as modifying account credentials or altering platform settings. The CVSS v3.1 score of 6.1 accurately reflects this impact profile, highlighting the requirement for user interaction (UI:R) and the changed security scope (S:C) inherent to reflected XSS.

Remediation and Detection Guidance

The definitive remediation for CVE-2026-33499 is to update WWBN AVideo installations to a version encompassing commit f154167251c9cf183ce09cd018d07e9352310457. System administrators must ensure that the patched code correctly implements htmlspecialchars() with the ENT_QUOTES flag applied to the unlockPassword parameter in both view/forbiddenPage.php and view/warningPage.php.

Organizations unable to deploy the patch immediately can implement mitigation controls via a Web Application Firewall (WAF). WAF rules should be configured to inspect the unlockPassword parameter for structural HTML characters, specifically double quotes ("), or common JavaScript event handlers like onfocus, onmouseover, or onload. Dropping requests that match these signatures will successfully disrupt the attack vector.

Detection of historical exploitation attempts requires analysis of web server access logs. Security analysts should query HTTP GET requests targeting /channel/ or video paths containing the unlockPassword query parameter. Analysts should flag any requests where the parameter value includes URL-encoded double quotes (%22) followed by spaces and subsequent attribute declarations.

Official Patches

WWBNOfficial patch commit implementing htmlspecialchars.
WWBNGitHub Security Advisory.

Fix Analysis (1)

Technical Appendix

CVSS Score
6.1/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Affected Systems

WWBN AVideo (formerly YouPHPTube)

Affected Versions Detail

Product
Affected Versions
Fixed Version
AVideo
WWBN
<= 26.0Post-26.0 (Commit f154167251)
AttributeDetail
CWE IDCWE-79
Attack VectorNetwork
CVSS Score6.1
ImpactSession Hijacking, Account Takeover
Exploit StatusProof of Concept Available
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
T1185Browser Session Hijacking
Collection
CWE-79
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Known Exploits & Detection

Context Report PoCZero-interaction execution payload using autofocus and onfocus attributes within the unlockPassword parameter.

Vulnerability Timeline

Vulnerability patched by vendor in commit f154167251c9cf183ce09cd018d07e9352310457.
2026-03-20
GitHub Security Advisory published (GHSA-7292-w8qp-mhq2).
2026-03-23
CVE ID assigned and published (CVE-2026-33499).
2026-03-23

References & Sources

  • [1]Official Patch Commit
  • [2]GitHub Security Advisory: GHSA-7292-w8qp-mhq2
  • [3]NVD Vulnerability Detail: CVE-2026-33499
  • [4]CVE.org Record: CVE-2026-33499

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 6 hours ago•GHSA-HVQH-JW65-WCPQ
6.1

GHSA-HVQH-JW65-WCPQ: Cross-Site Scripting (XSS) in devbridge-autocomplete

The devbridge-autocomplete package (jQuery-Autocomplete) fails to escape category headers and suggestion values when using default formatters formatGroup and formatResult. If suggestions contain untrusted input, arbitrary HTML and JavaScript execute directly in the victim's browser session.

Alon Barad
Alon Barad
3 views•6 min read
•about 10 hours ago•CVE-2024-37155
6.5

CVE-2024-37155: Security Bypass in OpenCTI GraphQL Introspection via Whitespace and Control Character Manipulation

OpenCTI versions prior to 6.1.9 fail to properly restrict GraphQL schema introspection queries due to a weak pattern-matching implementation. An unauthenticated attacker can bypass the introspection block list by stripping whitespace and carriage returns, enabling complete reconnaissance of the GraphQL schema.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 11 hours ago•CVE-2025-58048
10.0

CVE-2025-58048: Remote Code Execution via Unrestricted Ticket Attachment Uploads in Paymenter

An unrestricted file upload vulnerability in Paymenter's support ticket system (prior to version 1.2.11) allows authenticated users to upload arbitrary PHP scripts to a web-accessible directory. The application fails to validate file extensions or MIME types before storing the files, enabling remote code execution under the web server's privilege context.

Amit Schendel
Amit Schendel
5 views•5 min read
•about 12 hours ago•CVE-2026-21887
7.7

CVE-2026-21887: Server-Side Request Forgery in OpenCTI Data Ingestion Component

A technical analysis of CVE-2026-21887, a Server-Side Request Forgery (SSRF) vulnerability in OpenCTI. The flaw occurs in the platform's data ingestion mechanism, which processes user-supplied feed URLs via Axios under a default configuration. Authenticated users with low privileges can exploit this to pivot into internal infrastructure, target metadata services, and scan private networks.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 24 hours ago•GHSA-6GQW-JQV7-V88M
7.2

GHSA-6GQW-JQV7-V88M: Multi-Tenant Isolation Bypass in stigmem-node via Missing SQL Tenant Predicates

A critical vulnerability exists in the stigmem-node package when running the opt-in stigmem-plugin-multi-tenant plugin. Due to a failure to enforce tenant-scoping filters on database queries within the decay sweep, quarantine moderation, and right-to-be-forgotten (RTBF) subsystems, an authorized caller belonging to one tenant can access, modify, and delete facts belonging to all other tenants. This broken object level authorization (BOLA) vulnerability allows cross-tenant data manipulation and information leakage.

Amit Schendel
Amit Schendel
6 views•6 min read
•1 day ago•GHSA-V3F4-W7R7-V3HM
8.6

GHSA-v3f4-w7r7-v3hm: Remote Command Execution via Origin Validation Error in Uni-CLI Legacy HTTP Transport

An origin validation error and cross-site request forgery vulnerability in @zenalexa/unicli prior to version 0.225.2 allows cross-origin web applications to execute arbitrary tools on a user's local machine via the legacy stateless HTTP transport.

Amit Schendel
Amit Schendel
6 views•7 min read