Skip to main content

AVideo-Encoder CVE-2026-61569

| EUVDEUVD-2026-112553 HIGH
SQL Injection (CWE-89)
2026-10-28 security-advisories@github.com
7.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Reach unauthenticated login.json.php endpoint
  2. Delivery
    Supply attacker siteURL passing default-empty allowlist
  3. Exploit
    Return login response asserting canUpload/isAdmin
  4. Execution
    Inject entity-encoded quote via user parameter
  5. Impact
    UNION-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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

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

Alert me

AnalysisAIv1 – 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

AVideo-Encoder < 8.1.0

Affected Packages

euvd avideo_encoder fix: 8.1.0

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

Vendor (github) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

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.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

2
Patch available
Oct 28, 2026 - 23:04 EUVD
CVE Published
Oct 28, 2026 - 22:17 cve.org
HIGH 7.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Enforce a non-empty streamer allowlist, restrict network access to the login endpoint, and monitor for anomalous login attempts.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted open-source video platform encoder component
Social Media
2
Sightings
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

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

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