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-33649

CVE-2026-33649: GET-Based CSRF Privilege Escalation in WWBN AVideo

Alon Barad
Alon Barad
Software Engineer

Mar 25, 2026·6 min read·19 visits

Executive Summary (TL;DR)

A critical CSRF flaw in AVideo allows unauthenticated attackers to grant arbitrary permissions to user groups by tricking an administrator into visiting a malicious page. The endpoint improperly accepts GET requests and lacks token validation, exacerbated by a global SameSite=None cookie policy.

WWBN AVideo up to version 26.0 is vulnerable to a Cross-Site Request Forgery (CSRF) vulnerability in the permissions management endpoint. The vulnerability allows attackers to escalate privileges by forcing an authenticated administrator to execute state-changing GET requests without anti-CSRF token validation.

Vulnerability Overview

WWBN AVideo up to version 26.0 contains a Cross-Site Request Forgery (CSRF) vulnerability tracked as CVE-2026-33649. The flaw resides within the plugin/Permissions/setPermission.json.php endpoint, which is responsible for modifying user group access controls. By exploiting this vulnerability, an attacker can perform unauthorized state-changing operations on the application.

The vulnerable endpoint processes incoming requests to grant or revoke critical system privileges, such as video upload capabilities and user management rights. Because it fails to properly validate the origin and intent of these requests, it exposes a critical attack surface. Administrators managing the platform are the primary targets, as their elevated session privileges are required to execute the permission changes.

The attack vector relies on an attacker crafting a malicious web page that automatically triggers requests to the vulnerable AVideo endpoint. When an authenticated administrator visits this page, their browser executes the requests within the context of their active session. The application blindly trusts these requests, resulting in unauthorized privilege escalation for an attacker-controlled user group.

Root Cause Analysis

The root cause of CVE-2026-33649 is a combination of three distinct security misconfigurations interacting within the application architecture. First, the setPermission.json.php endpoint explicitly retrieves parameters using the $_REQUEST superglobal array. This implementation allows the endpoint to accept input via HTTP GET query strings, violating the standard practice of using POST requests for state-changing operations.

Second, the endpoint completely omits anti-CSRF token validation. While the AVideo application implements a global token validation function named isGlobalTokenValid(), developers failed to invoke this function within the permissions endpoint. Other administrative endpoints, such as saveSort.json.php, correctly implement this check, indicating a localized oversight rather than a systemic lack of CSRF protection mechanisms.

Third, the vulnerability is amplified by AVideo's session cookie configuration. The application explicitly sets ini_set('session.cookie_samesite', 'None'); in objects/include_config.php. This configuration is documented as an intentional choice to support cross-origin iframe embedding for video players. However, setting SameSite=None removes modern browser protections against cross-site request inclusion, allowing session cookies to be appended to GET requests initiated from arbitrary third-party domains.

Code Analysis

An examination of the vulnerable code in plugin/Permissions/setPermission.json.php reveals the exact mechanism of the flaw. The script iterates over an array of expected parameters, extracting them directly from $_REQUEST without validating the HTTP method. It then passes these unvalidated, untrusted inputs directly to the Permissions::setPermission() method.

$intvalList = array('users_groups_id','plugins_id','type','isEnabled');
foreach ($intvalList as $value) {
    if($_REQUEST[$value]==='true'){
        $_REQUEST[$value] = 1;
    }else{
        $_REQUEST[$value] = intval($_REQUEST[$value]);
    }
}
 
$obj = new stdClass();
$obj->id = Permissions::setPermission($_REQUEST['users_groups_id'], $_REQUEST['plugins_id'], $_REQUEST['type'], $_REQUEST['isEnabled']);

To remediate this vulnerability, the endpoint must be refactored to enforce strict HTTP method validation and token verification. The application must reject any request that does not use the POST method. Furthermore, it must call the existing isGlobalTokenValid() function before processing any input variables.

// 1. Enforce POST method
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    die(json_encode(array('error' => 'POST method required')));
}
// 2. Enforce CSRF token
if (!isGlobalTokenValid()) {
    die(json_encode(array('error' => 'Invalid CSRF token')));
}
 
$intvalList = array('users_groups_id','plugins_id','type','isEnabled');
foreach ($intvalList as $value) {
    if($_POST[$value]==='true'){
        $_POST[$value] = 1;
    }else{
        $_POST[$value] = intval($_POST[$value]);
    }
}
 
$obj = new stdClass();
$obj->id = Permissions::setPermission($_POST['users_groups_id'], $_POST['plugins_id'], $_POST['type'], $_POST['isEnabled']);

Exploitation and Attack Methodology

Exploitation of CVE-2026-33649 requires the attacker to fulfill specific prerequisites. The target administrator must have an active, authenticated session with the AVideo application. The attacker must also identify the numeric ID of a user group they control (e.g., ID 2), which will be the recipient of the escalated privileges.

The attack methodology involves crafting a malicious HTML payload designed to silently execute HTTP GET requests. The provided proof-of-concept utilizes hidden <img> tags, appending the necessary parameters to the target endpoint's URL. By assigning multiple tags to the page, the attacker can systematically grant a series of permissions in a single page load.

<!DOCTYPE html>
<html>
<head><title>Interesting Content</title></head>
<body>
<h1>Check out this video!</h1>
<!-- PERMISSION_FULLACCESSVIDEOS (type=10) -->
<img src='https://target.example.com/plugin/Permissions/setPermission.json.php?users_groups_id=2&plugins_id=1&type=10&isEnabled=true' style='display:none'>
<!-- PERMISSION_USERS (type=20) -->
<img src='https://target.example.com/plugin/Permissions/setPermission.json.php?users_groups_id=2&plugins_id=1&type=20&isEnabled=true' style='display:none'>
</body>
</html>

When the administrator renders this HTML page, the browser attempts to resolve the image sources. It automatically fires asynchronous GET requests to the AVideo server. Because the server configures session cookies with SameSite=None, the browser includes the administrator's authentication cookies in the cross-origin requests, resulting in successful privilege escalation.

Impact Assessment

The successful exploitation of CVE-2026-33649 results in significant security consequences for the affected AVideo deployment. An unauthenticated attacker leverages the administrator's session to elevate the privileges of their own user group. This drive-by compromise grants the attacker unauthorized access to administrative functions without requiring direct authentication credentials.

The specific permissions demonstrated in the proof-of-concept grant the attacker extensive control. By assigning PERMISSION_FULLACCESSVIDEOS and PERMISSION_USERS, the attacker gains the ability to manipulate platform content and manage other users. This lateral movement compromises both the confidentiality and integrity of the system data.

The vulnerability is assessed with a CVSS v3.1 base score of 8.1 (High), reflecting the critical nature of the flaw. The vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N) highlights that while user interaction is required (UI:R), the attack is network-exploitable (AV:N), has low complexity (AC:L), and requires no prior privileges (PR:N) from the attacker's origin context.

Remediation and Mitigation

As of the publication date, no official patched release is available for WWBN AVideo to address CVE-2026-33649. Administrators operating affected systems must implement immediate manual remediations or compensating controls to secure their deployments. The primary recommendation is to manually patch the vulnerable PHP script as outlined in the code analysis section.

Administrators must modify plugin/Permissions/setPermission.json.php to explicitly enforce the POST HTTP method and require valid anti-CSRF tokens via the isGlobalTokenValid() function. All references to the $_REQUEST superglobal within this file must be replaced with $_POST to ensure parameters are not accepted via URL query strings.

In environments where direct code modification is not immediately feasible, compensating controls must be deployed. Security teams should implement Web Application Firewall (WAF) rules to explicitly block all GET requests targeting the /plugin/Permissions/setPermission.json.php URI path. Furthermore, administrators must practice strict session hygiene by avoiding general web browsing while maintaining an active session in the AVideo management console.

Official Patches

WWBNGitHub Security Advisory

Technical Appendix

CVSS Score
8.1/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
EPSS Probability
0.01%
Top 97% most exploited

Affected Systems

WWBN AVideo platform

Affected Versions Detail

Product
Affected Versions
Fixed Version
AVideo
WWBN
<= 26.0-
AttributeDetail
CWE IDCWE-352
Attack VectorNetwork
CVSS Score8.1
EPSS Percentile2.59%
Exploit StatusProof of Concept Available
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
CWE-352
Cross-Site Request Forgery (CSRF)

The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request.

Known Exploits & Detection

Security AdvisoryHTML PoC demonstrating privilege escalation via img tags

Vulnerability Timeline

Vulnerability publicly disclosed and assigned CVE ID
2026-03-23
Security advisory GHSA-g8x9-7mgh-7cvj published
2026-03-23
CVE published in NVD and analyzed for CVSS scores
2026-03-25

References & Sources

  • [1]GitHub Advisory GHSA-g8x9-7mgh-7cvj
  • [2]NVD Detail for CVE-2026-33649
  • [3]CVE Record CVE-2026-33649
  • [4]WWBN AVideo Source Code

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

•2 days ago•CVE-2026-58197
8.8

CVE-2026-58197: Host Escape and Lateral Movement via Insecure Container Network Defaults in ToolHive

A high-severity access control vulnerability in ToolHive CLI before v0.30.1 and ToolHive Studio before v0.38.0 allows local containerized MCP servers to bypass network isolation. This enables malicious workloads to establish TCP/IP connections to administrative and control plane endpoints exposed on the host loopback interface.

Amit Schendel
Amit Schendel
9 views•8 min read
•2 days ago•CVE-2026-63405
5.9

CVE-2026-63405: Insufficient Verification of Data Authenticity in AnyCable Pusher REST API

AnyCable is a real-time communication server. Prior to version 1.6.15, its Pusher-compatible REST API suffered from an authentication bypass vulnerability because it failed to verify that the request body matched the signature-validated body_md5 parameter. This allows attackers to perform replay attacks with modified body contents.

Amit Schendel
Amit Schendel
9 views•5 min read
•2 days ago•CVE-2026-64847
6.8

CVE-2026-64847: Indefinite Denial of Service via Undrained Stderr in AnyIO Process Pool Workers

A denial-of-service vulnerability exists in AnyIO prior to version 4.14.2. Standard error streams of process-pool workers are connected to an operating system pipe that is never drained by the parent process. This allows a worker to fill the pipe buffer and deadlock indefinitely.

Amit Schendel
Amit Schendel
12 views•6 min read
•2 days ago•CVE-2026-63349
7.0

CVE-2026-63349: Privilege Dropping Bypass and Denial of Service in AnyIO Subprocess Module

CVE-2026-63349 is a critical privilege-dropping bypass vulnerability in the AnyIO asynchronous framework (versions 4.14.0 and 4.14.1) on POSIX platforms. Due to a variable assignment typo, supplementary groups specified by the developer are not correctly propagated to the execution backend, resulting in subprocesses retaining the parent process's elevated supplementary group permissions.

Alon Barad
Alon Barad
22 views•5 min read
•2 days ago•CVE-2026-63406
5.9

CVE-2026-63406: Information Disclosure via Insecure Telemetry and Hardcoded Credentials in AnyCable-Go

CVE-2026-63406 is an information disclosure vulnerability in AnyCable-go prior to version 1.6.15. The built-in telemetry client is enabled by default with a hardcoded public authentication token ('secret'). This client digests highly sensitive configuration parameters and command-line arguments, including JWT secrets and RPC secrets, into a stable SHA-256 fingerprint. This fingerprint is sent over public networks, exposing those administrative secrets to offline dictionary and brute-force attacks if intercepted.

Alon Barad
Alon Barad
7 views•5 min read
•2 days ago•CVE-2026-84992
6.1

CVE-2026-84992: Cross-Site Scripting (XSS) via Fenced Code Block Parsing in md-editor-v3

CVE-2026-84992 is a Cross-Site Scripting (XSS) vulnerability affecting md-editor-v3 before version 6.5.4. It occurs because the fenced-code block language parser directly interpolates unescaped language metadata into unquoted HTML attributes inside the custom rendering callback. This bypasses the built-in XSSPlugin which runs during the parsing phase, before rendering.

Amit Schendel
Amit Schendel
11 views•6 min read