Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious login link with XSS payload
-
DeliveryDeliver link to encoder operator
-
ExploitOperator opens anonymous AVideo-Encoder login page
-
ExecutionInjected JavaScript executes in encoder origin
-
PersistRead inline PHPSESSID and capture operator credentials
-
ImpactPerform actions as operator against encoder and upstream AVideo platform
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 attacker to deliver a crafted AVideo-Encoder login URL and a victim operator to open it (UI:R). The concrete injection points are the webSiteRootURL parameter (returned verbatim by Streamer::getStreamerURL(), absent from every objects/security.php filter list, reflected into the navbar href, a form value, and a single-quoted inline JavaScript string in view/index.header.php), the user and pass POST fields (sanitized only by stripping single quotes, so double quotes and angle brackets still break out of their HTML attributes in view/index.php), and the lang POST field (stored in the session by locale/function.php and re-reflected in view/index.php). These affect the default anonymous login interface - no special configuration is needed because the login view renders for any unauthenticated visitor (the gate checks only Login::canUpload()). Limiting factors: the attack depends on social engineering of a victim, and the highest-value impact (reading the operator session identifier exposed in inline script and acting as the operator) requires the victim to be an authenticated operator whose session is rendered. Versions prior to 8.1.0 are affected. |
| Impact | This is a moderate-severity reflected XSS (CWE-79) with a self-consistent set of signals rather than conflicting ones. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N, base 6.1) describes a network-reachable, unauthenticated, low-complexity flaw that nonetheless requires victim interaction (UI:R) - the attacker cannot act alone, they must persuade an operator to open a crafted login link. The scope change (S:C) is appropriate because injected script executes in the encoder's origin and can reach the upstream AVideo platform. No EPSS score and no SSVC automatable/technical-impact breakdown were supplied, so probabilistic and decision-tree signals are absent; the only priority signal is the vuln.today Decision label 'this_month', which is below act_now/emergency and consistent with a UI-gated XSS rather than a wormable server flaw. The CVE is NOT in CISA KEV, so there is no evidence of active exploitation. A detailed public PoC is present in the GitHub Security Advisory. Overall this is a genuine but not emergency issue: real impact (operator session/credential theft) is possible, but exploitation depends on social engineering of a privileged user, and the product footprint is small. Prioritize patching within the vendor-suggested window rather than treating it as an actively exploited emergency. |
| Exploit ScenarioDerived | An attacker crafts a login URL for a target AVideo-Encoder instance with a malicious payload in the webSiteRootURL, user, pass, or lang parameter and sends it to an operator (e.g. via email or chat). Because AC:L and the anonymous login page renders for any visitor, the only barrier is UI:R - the operator must open the link. The GHSA advisory includes working curl reproduction steps and a headless-Chromium confirmation, so a public PoC exists; when the operator loads the link, injected JavaScript runs in the encoder origin and can exfiltrate the inline-rendered PHPSESSID and typed credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Reflected cross-site scripting in the AVideo-Encoder login interface (WWBN/AVideo project) affects all versions prior to 8.1.0 and is reachable by unauthenticated remote attackers because the login view renders for any anonymous visitor - the gate in view/index.php only checks Login::canUpload(). By persuading a victim operator to open a crafted login URL, an attacker can execute arbitrary JavaScript in the encoder's origin, read the operator session identifier exposed in inline script, capture credentials typed into the login form, and act as the operator against the encoder and its upstream AVideo platform. The vendor has released 8.1.0, the GitHub advisory includes reproduction payloads for the affected parameters, and no confirmed active exploitation is reported; the CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N (6.1), requiring victim interaction for scope-changed, low-confidentiality/low-integrity impact.
RemediationAI
Vendor-released patch: upgrade AVideo-Encoder to 8.1.0, which is the release referenced by https://github.com/WWBN/AVideo-Encoder/releases/tag/v8.1.0 and contains the fix commit 789d75681cc9377e1cc8950ffcc0cfc9b2032b9e; the advisory at https://github.com/WWBN/AVideo-Encoder/security/advisories/GHSA-p9x3-679g-pwf5 should be tracked for updates. The patch makes three concrete changes that indicate what a manual backport would need to cover if upgrading immediately is not possible: HTML-escape the streamer URL with htmlspecialchars(..., ENT_QUOTES, 'UTF-8') everywhere it is echoed in view/index.header.php and view/index.php, replace the raw inline JavaScript interpolation of webSiteRootPath, webSiteRootURL and PHPSESSID with json_encode using JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP, and restrict the POST/SESSION lang value in locale/function.php to a sanitized value that corresponds to an existing locale file, defaulting to en_US otherwise. Apply the same encoding to the user and pass fields, since the existing sanitizer in objects/security.php strips only single quotes. No workaround is described in the available sources; the vendor fix is the complete remediation, and priority per the vuln.today decision label is to schedule the update within the current month, with urgency driven by the fact that the injection is reachable without authentication.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is CWE-79 reflected XSS in a PHP application (CPE cpe:2.3:a:wwbn:avideo-encoder, all versions before 8.1.0). Its root cause class is missing output encoding at multiple sinks reachable from the anonymous login flow. The webSiteRootURL request value is returned verbatim by Streamer::getStreamerURL() in objects/Streamer.php and is absent from every filter list in objects/security.php, so it reaches a navbar href, a form value in view/index.php and a single-quoted inline JavaScript string in view/index.header.php unfiltered - that JavaScript context sits immediately adjacent to the rendered PHPSESSID variable, which is why the defect escalates from page defacement to session-identifier disclosure. The user and pass fields pass through the only sanitizer on that path, a closure in objects/security.php that strips single quotes alone, leaving double quotes and angle brackets free to break out of double-quoted HTML attributes. Two further sinks compound the problem: view/index.header.php reflects all POST fields through json_encode without JSON_HEX_TAG, permitting a literal closing script tag to terminate the script block, and locale/function.php stores the POST lang value into the session at require-time for unescaped re-reflection in view/index.php. The corresponding fix in commit 789d756 applies htmlspecialchars with ENT_QUOTES and UTF-8 to the streamer URL, switches the inline JavaScript assignments to json_encode with JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP, and whitelists the lang value against existing locale files. The trigger conditions for each individual parameter are documented in the advisory; exploitation requires the attacker to deliver the crafted URL and the victim to open it.
Know when PHP 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
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Unauthenticated reflected XSS reachable over the network with low complexity (PR:N/AC:L) but requiring the victim to open a crafted link (UI:R); script runs cross-scope in the encoder origin (S:C) with low confidentiality and integrity impact and no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
AVideo is a video-sharing Platform. Prior to 8.1.0, the anonymous login interface reflects request values into HTML and JavaScript without output encoding. In view/index.php, webSiteRootURL is returned verbatim by Streamer::getStreamerURL() in objects/Streamer.php and reaches navigation and form attributes; it also enters a single-quoted JavaScript string in view/index.header.php. It is not filtered by objects/security.php, while the user and pass fields are filtered only for single quotes, leaving double quotes and angle brackets capable of breaking out of their HTML attributes. In addition, view/index.header.php reflects POST fields using json_encode without JSON_HEX_TAG, allowing a closing script tag to break out, and locale/function.php stores the POST lang value in the session for unescaped reflection in view/index.php. An unauthenticated remote attacker who persuades a victim to open a crafted login link can execute arbitrary JavaScript in the encoder's origin. This can read the operator session identifier exposed in inline script, capture login credentials and perform actions as the operator against the encoder and its upstream platform. This issue is fixed in version 8.1.0.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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
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
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
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
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
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
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-112511
NVD
CVE.org
GitHub
Exploit-DB