Skip to main content

WWBN AVideo CVE-2026-41061

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-04-21 security-advisories@github.com
5.4
CVSS 3.1 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI
5.4 MEDIUM

Requires authenticated upload access (PR:L) and victim page visit (UI:R); scope changes because XSS executes in the victim browser context outside the server.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

3
Source Code Evidence Fetched
Jul 24, 2026 - 05:25 vuln.today
Analysis Generated
Jul 24, 2026 - 05:25 vuln.today
CVE Published
Apr 21, 2026 - 23:16 nvd
MEDIUM 5.4

DescriptionGitHub Advisory

WWBN AVideo is an open source video platform. In versions 29.0 and below, the isValidDuration() regex at objects/video.php:918 uses /^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/ without a $ end anchor, allowing arbitrary HTML/JavaScript to be appended after a valid duration prefix. The crafted duration is stored in the database and rendered without HTML escaping via echo Video::getCleanDuration() on trending pages, playlist pages, and video gallery thumbnails, resulting in stored cross-site scripting. Commit bcba324644df8b4ed1f891462455f1cd26822a45 contains a fix.

AnalysisAI

Stored XSS in WWBN AVideo 29.0 and below allows authenticated uploaders to inject persistent JavaScript payloads via a malformed video duration field that bypasses input validation due to a missing regex end anchor. The crafted payload is stored in the database and rendered unescaped across trending, playlist, and gallery thumbnail pages, enabling session hijacking or credential theft against any visiting user including administrators. A proof-of-concept is documented in the GitHub Security Advisory; however, EPSS probability is very low (0.03%, 8th percentile) and no CISA KEV listing confirms active exploitation.

Technical ContextAI

AVideo (CPE: cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*) is a PHP-based open-source video platform. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) arises from two compounding defects. First, the isValidDuration() function at objects/video.php:918 uses the regex /^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/ which anchors the start with ^ but omits the $ end anchor, so a payload like 00:00:01</time><img src=x onerror=alert(1)><time> passes validation because the leading HH:MM:SS is matched and trailing content is silently ignored. Second, getCleanDuration() at line 3480 explodes the string on colons and, when 3 or more parts are found, returns the full unsanitized string unmodified. Callers in view/trending.php:72, view/include/playlist.php:159, and gallery thumbnail generation code echo this result directly into HTML without htmlspecialchars(). The application uses raw PHP templates with no auto-escaping framework and sets no Content-Security-Policy headers, leaving no secondary defense against XSS execution.

RemediationAI

Apply upstream fix commit bcba324644df8b4ed1f891462455f1cd26822a45 (https://github.com/WWBN/AVideo/commit/bcba324644df8b4ed1f891462455f1cd26822a45) directly, as no tagged release version has been confirmed in the composer package registry (fixed in: None per package data). The commit implements three layered defenses: it adds a $ end anchor and optional decimal-seconds suffix to the isValidDuration() regex, it modifies getCleanDuration() to reconstruct duration strings from parsed numeric parts rather than returning the raw stored string, and it wraps all output sinks in view/trending.php and view/include/playlist.php with htmlspecialchars(..., ENT_QUOTES, 'UTF-8'). As a compensating control pending patch deployment, restrict video upload permissions to trusted accounts only - this eliminates the PR:L attacker foothold entirely. Adding a Content-Security-Policy header such as script-src 'self' reduces XSS execution impact but does not prevent malicious data storage. Existing database records with injected duration values may remain dangerous until cleaned; the patched getCleanDuration() provides runtime defense against already-stored payloads.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

CVE-2026-41061 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy