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 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate with upload-capable account
  2. Delivery
    Submit crafted duration via encoder receiver endpoint
  3. Exploit
    Bypass unanchored regex validation
  4. Install
    Payload persisted to database
  5. C2
    Victim browses trending, playlist, or gallery page
  6. Execute
    Injected JavaScript executes in victim browser
  7. Impact
    Session tokens or credentials exfiltrated

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated account with video upload permission on the target AVideo instance (CVSS PR:L); unauthenticated exploitation is not possible. The attacker submits the malicious duration via the encoder receiver endpoint at objects/aVideoEncoderReceiveImage.json.php:208 using the $_REQUEST['duration'] parameter. Payload execution additionally requires a victim to visit a page that renders the injected video's duration - specifically the trending page (view/trending.php), a playlist page (view/include/playlist.php), or a video gallery thumbnail view (CVSS UI:R). Exploitation is limited by: (1) the need for an upload-capable account, making open-registration instances higher risk than invite-only deployments; (2) the requirement for victim browsing of affected pages; (3) the absence of Content-Security-Policy does not add any limitation but its presence on a patched instance would have reduced impact. SSVC confirms the attack is not automatable, meaning bulk targeted campaigns are impractical.

Impact

The CVSS 3.1 score of 5.4 Medium accurately models this vulnerability's constrained exploitation path: network delivery and low complexity are offset by required authenticated access (PR:L) and mandatory victim interaction (UI:R), both of which significantly limit blast radius versus a fully unauthenticated XSS. The Scope:Changed metric correctly reflects that JavaScript executes in a victim's browser context separate from the server. EPSS at 0.03% (8th percentile) indicates very low observed exploitation probability consistent with the SSVC finding of Automatable:no - mass automated exploitation is infeasible because each attack requires an authenticated upload account plus a second victim browsing the affected pages. SSVC Technical Impact:partial aligns with the limited C:L/I:L CVSS impact ratings. No CISA KEV listing confirms the absence of known active exploitation. The POC documented in GHSA-8pv3-29pp-pf8f elevates risk for targeted attacks, particularly where AVideo instances allow registrations from untrusted users and administrators regularly browse trending or playlist views. Overall this is a genuine but operationally constrained risk, not a mass-exploitation scenario.

Exploit ScenarioDerived

An authenticated AVideo user with upload permission submits a duration value of 00:00:01</time><img src=x onerror=alert(document.cookie)><time> via the $_REQUEST['duration'] parameter at objects/aVideoEncoderReceiveImage.json.php:208. The value bypasses isValidDuration() due to the missing end anchor and is persisted to the database. When any subsequent user - including site administrators - visits the trending page, a playlist, or a video gallery, the injected tag breaks out of the <time> element and the onerror handler fires, exfiltrating session cookies to an attacker-controlled host. The GitHub Security Advisory contains a partial proof-of-concept confirming this flow.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 24, 2026

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.

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.

Affected Packages

composer wwbn/avideo no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in composer

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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.

Know when Avideo gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) 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 Vendor (github).

CVSS VectorVendor: github

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

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
Prevalence
Low
open-source niche self-hosted video platform, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)CVE.org

cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*

More in Avideo

View all
CVE-2023-48728 CRITICAL POC
9.6 Jan 10

A cross-site scripting (xss) vulnerability exists in the functiongetOpenGraph videoName functionality of WWBN AVideo 11.

CVE-2024-31819 CRITICAL POC
9.8 Apr 10

An issue in WWBN AVideo v.12.4 through v.14.2 allows a remote attacker to execute arbitrary code via the systemRootPath

CVE-2022-30547 CRITICAL POC
9.9 Aug 22

A directory traversal vulnerability exists in the unzipDirectory functionality of WWBN AVideo 11.6 and dev master commit

CVE-2023-49599 CRITICAL POC
9.8 Jan 10

An insufficient entropy vulnerability exists in the salt generation functionality of WWBN AVideo dev master commit 15fed

CVE-2026-28501 CRITICAL POC
9.8 Mar 06

Unauthenticated SQL injection in AVideo before 24.0.

CVE-2023-25313 CRITICAL POC
9.8 Apr 25

OS injection vulnerability in World Wide Broadcast Network AVideo version before 12.4, allows attackers to execute arbit

CVE-2022-26842 CRITICAL POC
9.6 Aug 22

A reflected cross-site scripting (xss) vulnerability exists in the charts tab selection functionality of WWBN AVideo 11.

CVE-2023-47861 CRITICAL POC
9.0 Jan 10

A cross-site scripting (xss) vulnerability exists in the channelBody.php user name functionality of WWBN AVideo 11.6 and

CVE-2022-28712 CRITICAL POC
9.0 Aug 22

A cross-site scripting (xss) vulnerability exists in the videoAddNew functionality of WWBN AVideo 11.6 and dev master co

CVE-2023-49589 HIGH POC
8.8 Jan 10

An insufficient entropy vulnerability exists in the userRecoverPass.php recoverPass generation functionality of WWBN AVi

CVE-2023-32073 HIGH POC
8.8 May 12

WWBN AVideo is an open source video platform. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable

CVE-2023-30854 HIGH POC
8.8 Apr 28

AVideo is an open source video platform. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low

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