AVideo has an Unauthenticated Local File Inclusion in API locale (RCE possible with writable PHP)
Description
Published to the GitHub Advisory Database
Mar 20, 2026
Reviewed
Mar 20, 2026
Last updated
Mar 20, 2026
Summary
An unauthenticated API endpoint (
APIName=locale) concatenates user input into anincludepath with no canonicalization or whitelist. Path traversal is accepted, so arbitrary PHP files under the web root can be included. In our test this yielded confirmed file disclosure and code execution of existing PHP content (e.g.,view/about.php), and it can escalate to RCE if an attacker can place or control a PHP file elsewhere in the tree.Details
plugin/API/get.json.phpsets$global['bypassSameDomainCheck']=1and merges GET/POST/JSON into$parameterswithout authentication or API secret.plugin/API/API.php, methodget_api_locale()(lines ~5009–5023):../traversal is accepted.includeexecutes PHP, any reachable PHP file is executed in the web server context.PoC
locale/.shell.phpcontains<?php system($_GET['x']); ?>, the response includes command output.Impact
Mitigation
realpaththe target and ensure it stays within$systemRootPath/locale.includefor translations; load data from vetted formats (JSON/array).References