ZeroHour

CVE-2026-82645

Unauthenticated Stream-Credential Disclosure in AVideo

CVSS 4.0
9.2 critical
EPSS
<1%p3
Published
()
Modified
AI analysis

AVideo, in commit e01e41ecc and all earlier versions, exposes third-party stream credentials through the plugin/Live/view/Live_restreams/getLiveKey.json.php endpoint without authentication. An attacker can supply a 'token' parameter that waives both the Live::canRestream() access gate and the restream ownership check, and because the token is merely an AES-256-CBC encryption of an integer id (deterministic IV, no MAC, no user binding), valid tokens can be forged using the public encryption oracle in view/url2Embed.json.php. This lets any unauthenticated remote attacker retrieve the stream_key and stream_url of any user's restreams, i.e., credentials for external platforms such as YouTube, Facebook, and Twitch, which could enable stream hijacking or platform impersonation. Any unpatched AVideo deployment exposing these endpoints is affected. No exploitation has been observed: EPSS is 0.1%, the flaw is not in CISA KEV, and no public proof-of-concept is known.

What to do: Update AVideo to a build later than commit e01e41ecc as soon as a patched release is available. As an interim mitigation, restrict unauthenticated web access to plugin/Live/view/Live_restreams/getLiveKey.json.php and view/url2Embed.json.php (e.g., via access rules or WAF) and review access logs for unauthenticated requests carrying a 'token' parameter to either endpoint. If compromise is suspected, rotate the affected accounts' stream keys on YouTube, Facebook, and Twitch.

Affected
AVideo (open-source project) AVideoall versions/commits up to and including commit e01e41ecc (no fixed version specified in the data)
Estimated exposure
No basis for an estimate.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

AVideo (current commit e01e41ecc and earlier) exposes stream credentials through the plugin/Live/view/Live_restreams/getLiveKey.json.php endpoint. Supplying a 'token' request parameter waives both the Live::canRestream() access gate and the restream ownership check, causing the endpoint to return any restream's stream_key and stream_url (credentials for external platforms such as YouTube, Facebook, and Twitch) without authentication. The token is merely encryptString() of an integer id with no user binding, expiry, or authentication tag. Because encryption uses AES-256-CBC with a deterministic IV and no MAC, and because intval() accepts any string beginning with a digit, an unauthenticated attacker can forge valid tokens using the public encryption oracle in view/url2Embed.json.php, disclosing arbitrary users' stream credentials.

Weakness
CWE-347
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.