Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach unauthenticated login.json.php endpoint
-
DeliverySupply attacker siteURL passing default-empty allowlist
-
ExploitReturn login response asserting canUpload/isAdmin
-
ExecutionInject entity-encoded quote via user parameter
-
ImpactUNION-read encoder database and exfiltrate streamer credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that (1) the AVideo-Encoder instance is network-reachable, (2) the operator has NOT populated the streamer allowlist, because Streamer::isURLAllowed returns true by default when the allowlist is empty, (3) the attacker can host an HTTP listener that the encoder can resolve and reach and whose login response sets canUpload or isAdmin true, reaching Streamer::createIfNotExists and thus the Streamer::get sink before the secondary allowlist re-check, and (4) the single quote is delivered as a numeric HTML entity so it survives the $securityRemoveSingleQuotes filter in security.php and is then restored to a literal quote by html_entity_decode in Login.php. Limiting factors: an operator-populated allowlist blocks the attacker siteURL; the encoder must be able to call back to the attacker's host; and impact is bounded to database reads (the mysqli driver forbids stacked statements and the tested DB account lacks global FILE privilege, so no writes or server-side file operations were demonstrated). Fixed in version 8.1.0; the vendor fix (parameterization) is the complete remedy. |
| Impact | CVSS 3.1 base score is 7.5 (HIGH) driven entirely by the confidentiality impact (C:H) of an unauthenticated, network-reachable, low-complexity SQL injection (AV:N/AC:L/PR:N/UI:N). The vuln.today decision label is 'this_week', which signals a prompt but non-emergency patch priority. No CISA KEV listing is present in the input, so there is no confirmed active exploitation; no EPSS probability was supplied, so widespread-exploitation likelihood cannot be quantified from this data. A detailed public PoC (curl-based UNION and error-based payloads) is published inside the GHSA advisory itself, which materially lowers the attacker skill barrier even though the input does not flag it as a verified weaponized exploit. The signals are therefore consistent rather than conflicting: high technical confidentiality impact and a ready PoC, but no evidence of mass exploitation and a product with a small deployment footprint. The AC:L rating understates real-world friction - successful attack additionally requires that the operator has left the streamer allowlist empty (the default) and that the encoder can resolve and reach an attacker-hosted HTTP listener returning canUpload/isAdmin true - so this is a genuine priority for anyone running AVideo-Encoder, but closer to a targeted/opportunistic read-only data-theft risk than an internet-wide worming threat. |
| Exploit ScenarioDerived | An unauthenticated attacker points an exposed AVideo-Encoder at an attacker-controlled HTTP listener (via the siteURL parameter, which the default-empty allowlist accepts) that returns a login response asserting canUpload/isAdmin true, then sends an entity-encoded single quote in the user parameter to bypass the security.php quote filter after html_entity_decode restores it. A UNION-based payload reads arbitrary encoder database contents one value per request through the streamers_id field of the JSON response, while a malformed payload leaks the rendered query and MariaDB error for easy payload tuning. A fully working PoC with exact curl commands is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated SQL injection in the AVideo-Encoder streamer login endpoint (objects/login.json.php) lets remote attackers read arbitrary data from the encoder database, including stored upstream streamer credentials, allowlist configuration and job queue records. All deployments prior to 8.1.0 are affected, and exploitation additionally requires the operator to have left the streamer allowlist empty (the default) and to be reachable by an attacker-controlled login-response host. CVSS 3.1 base score is 7.5 (HIGH), driven entirely by confidentiality impact from a network-reachable, low-complexity, unauthenticated attack; there is no CISA KEV entry, exploitation in the wild is not confirmed, and while the vendor advisory documents a public proof-of-concept reproduction, it is not verified as working exploit code.
RemediationAI
Vendor-released patch: upgrade to AVideo-Encoder 8.1.0, which rewrites Streamer::get to use a prepared statement with bind_param('ss', $user, $siteURL) and replaces the die()-based error output with logged failures (commit 8a6e2b8aedb87702656636d3fc8d9e26e559a762, https://github.com/WWBN/AVideo-Encoder/releases/tag/v8.1.0); this parameterization is the complete remedy. If immediate upgrade is not possible, populate the streamer allowlist with the exact trusted site URLs, since Streamer::isURLAllowed returning true on an empty allowlist is a hard prerequisite for exploitation - the trade-off is that any legitimate streamer whose siteURL is not listed will be rejected until added. Additionally restrict network access to objects/login.json.php so only known encoder hosts can reach it, accepting that this breaks remote streamer logins from other sources. Because UNION extraction exposes the credential-bearing streamers table, rotate the upstream platform user, pass and isAdmin credentials for every streamer the encoder serves if compromise is suspected, as stolen credentials remain valid until rotated.
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
The flaw is CWE-89 in objects/Streamer.php, where Streamer::get builds a single-quoted MariaDB SELECT using the caller-supplied user value without parameterization or escaping: the value is interpolated directly into "WHERE user = '{$user}'". The endpoint objects/login.json.php is unauthenticated and forwards the POSTed user, pass and siteURL into Login::run after only an emptiness check and a Streamer::isURLAllowed gate on siteURL, which returns true by default when the operator has not populated the allowlist. A plain single quote in user is stripped by the $securityRemoveSingleQuotes filter in objects/security.php, but the HTML numeric entity form passes that filter and is converted back to a literal quote by html_entity_decode in objects/Login.php before reaching the sink. Streamer::createIfNotExists invokes Streamer::get before its own secondary allowlist re-check, so the query fires whenever an attacker-hosted login response advertises canUpload or isAdmin. Two primitives result: a UNION-based read, since the first column of the returned row populates streamers_id in the JSON login response, and an error-based leak, because a failed query hits a die() that echoes the rendered SQL and MariaDB error (CWE-209). The underlying stack is PHP with the mysqli driver against MariaDB; stacked statements are not permitted and the tested database account lacks global FILE privilege, so the demonstrated vector is bounded to reads rather than server-side file writes. The endpoint also carries no authentication, CSRF token or rate limit (CWE-862).
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:N/S:U/C:H/I:N/A:N
Unauthenticated network injection reaching the sink before any auth (PR:N/AV:N); default-empty allowlist and published PoC keep complexity low (AC:L); impact is arbitrary DB read only, so C:H and I:A:N.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
AVideo is a video-sharing Platform. Prior to 8.1.0, the unauthenticated streamer login at objects/login.json.php passes the user parameter to Streamer::get in objects/Streamer.php, where it is interpolated into a single-quoted MariaDB SELECT without parameterization or escaping. Although objects/security.php strips literal single quotes, html_entity_decode in objects/Login.php restores entity-encoded quotes before the query. The supplied siteURL must pass the streamer allowlist, which allows all sites when empty by default, and an attacker-hosted login response must set canUpload or isAdmin to reach Streamer::createIfNotExists. That function calls Streamer::get before its additional allowlist check. UNION results are exposed through streamers_id, while failures return the rendered query and MariaDB error. An attacker can read arbitrary encoder database data, including stored upstream streamer credentials, allowlist configuration, and queue records, without encoder credentials. Stacked statements are not permitted by the mysqli driver and the tested database account lacks global FILE privilege, so the demonstrated vector is bounded to reads rather than server-side file writes. Stolen streamer credentials can provide continued upstream access until rotated. This issue is fixed in version 8.1.0.
Technical POC Analysis
CWE-89 (SQL injection) in the encoder's own application code, not in a third-party library.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity SQL injection vulnerability in AVideo-Encoder, a live streaming encoder product, could allow unauthorized access to sensitive data such as stored streamer credentials and job queue records. With no patch currently available and exploitation requiring default configurations, organizations using this product face a confidentiality risk that could lead to further compromise of streaming infrastructure. Leadership should prioritize mitigation due to the potential for data exposure and downstream attacks.
Enforce a non-empty streamer allowlist, restrict network access to the login endpoint, and monitor for anomalous login attempts.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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-112553
NVD
CVE.org
GitHub
Exploit-DB