Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Network endpoint requires streaming-level credentials (PR:L); read-only IDOR yields high confidentiality impact via OAuth tokens with no integrity or availability consequence.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
4DescriptionGitHub Advisory
WWBN AVideo is an open source video platform. In versions 29.0 and prior, the endpoint plugin/Live/view/Live_restreams/list.json.php contains an Insecure Direct Object Reference (IDOR) vulnerability that allows any authenticated user with streaming permission to retrieve other users' live restream configurations, including third-party platform stream keys and OAuth tokens (access_token, refresh_token) for services like YouTube Live, Facebook Live, and Twitch. Commit d5992fff2811df4adad1d9fc7d0a5837b882aed7 fixes the issue.
AnalysisAI
Insecure Direct Object Reference in AVideo's live restream list endpoint exposes any victim user's RTMP stream keys and OAuth tokens - including access_token and refresh_token for YouTube Live, Facebook Live, and Twitch - to any peer with a streaming-permission account on the same instance. The flaw exists in versions 29.0 and prior, where the authorization guard in list.json.php is trivially bypassed by supplying an explicit users_id GET parameter, routing directly to an attacker-controlled database query. Publicly available exploit code exists per SSVC; EPSS is 0.03% (8th percentile), indicating limited opportunistic exploitation at this time, and the vulnerability is not listed in CISA KEV.
Technical ContextAI
AVideo is a PHP-based open-source video platform (CPE: cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*) distributed as a Composer package (wwbn/avideo). The root cause is CWE-639 (Authorization Through User-Controlled Key): the Live plugin's list.json.php uses the user-supplied users_id GET parameter as the authorization scope key without validating that the requesting user owns the referenced records. The flawed implementation used an empty() guard that only enforced self-scoping when the parameter was absent - a non-admin user who explicitly provides users_id skips the override entirely and routes the attacker-controlled value directly to Live_restreams::getAllFromUser(), which executes SELECT * FROM live_restreams WHERE users_id = $users_id, returning all columns including stream_key (VARCHAR 500), stream_url (VARCHAR 500), and a parameters TEXT blob containing OAuth credentials from the restream.ypt.me flow. Other endpoints in the same directory (e.g., delete.json.php) perform correct ownership validation, confirming this was an isolated omission rather than a systemic design failure.
RemediationAI
Apply the upstream fix from commit d5992fff2811df4adad1d9fc7d0a5837b882aed7 (https://github.com/WWBN/AVideo/commit/d5992fff2811df4adad1d9fc7d0a5837b882aed7), which removes the flawed empty() guard and unconditionally forces non-admin users to their own ID in list.json.php regardless of the GET parameter supplied. Note that a tagged patched release version is not confirmed in available data - the Composer package fix version is listed as None - so administrators must verify whether a release incorporating this commit has been published before relying on package-manager updates alone. As a compensating control pending patching, restrict HTTP access to plugin/Live/view/Live_restreams/list.json.php at the web server layer (nginx location block or Apache deny rule) to admin sessions only; this disables the restream list UI for non-admin streamers as a trade-off. Regardless of patch status, operators on multi-tenant deployments should immediately rotate all third-party stream keys and revoke OAuth tokens (YouTube, Facebook, Twitch) connected to AVideo restream configurations, as any streaming-permission user may have already accessed them.
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
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-24284