AVideo Arbitrary Code Execution via downloadVideoFromDownloadURL()
AVideo versions 26.0 and earlier are vulnerable to arbitrary code execution by exploiting the `downloadVideoFromDownloadURL()` function to save malicious PHP files in a web-accessible directory.
CVE search metadata
CVE search record: CVE-2026-33717. KEV: no. Brief: AVideo Arbitrary Code Execution via downloadVideoFromDownloadURL(). Brief link: https://feed.craftedsignal.io/briefs/2024-01-03-avideo-rce/
Triage facts
Revision 2- Evidence
- Unknown
- Severity
- Critical
- Sources
- 1 public source
- Freshness
- Revision 2Jan 3, 12:00 UTC
- Detection
- 2 rules
- Vulnerabilities
- 1 CVE
Revision history 1 entry · Revision 2
- Revision 2
Repaired a legacy canonical identity collision
Changed: slug
AVideo is an open-source video platform. A critical vulnerability, CVE-2026-33717, affects AVideo versions up to and including 26.0. The vulnerability resides within the downloadVideoFromDownloadURL() function in objects/aVideoEncoder.json.php. By manipulating the resolution parameter, a remote attacker can bypass input validation and force the application to write arbitrary PHP code into the videos/cache/tmpFile/ directory. Due to an early die() call via forbiddenPage(), the temporary file is not properly cleaned up, resulting in persistent arbitrary code execution on the target server. The vulnerability was patched in commit 6da79b43484099a0b660d1544a63c07b633ed3a2. Successful exploitation allows attackers to execute arbitrary code on the AVideo server.
Attack Chain
- The attacker sends a crafted HTTP request to the AVideo server, targeting the
downloadVideoFromDownloadURL()function inobjects/aVideoEncoder.json.php. - The attacker includes a malicious PHP file URL in the request parameters, disguised as a video file.
- The attacker provides an invalid
resolutionparameter value designed to trigger theforbiddenPage()function. - The
downloadVideoFromDownloadURL()function attempts to download the file from the provided URL. - Due to the invalid
resolutionparameter, theforbiddenPage()function is called, resulting in an earlydie(). - The premature termination prevents the intended cleanup operations, leaving the downloaded file (malicious PHP) in the
videos/cache/tmpFile/directory. - The attacker accesses the uploaded PHP file via a direct HTTP request to
videos/cache/tmpFile/<malicious_file>.php. - The server executes the PHP code, granting the attacker arbitrary code execution on the AVideo server.
Impact
Successful exploitation of CVE-2026-33717 allows an attacker to execute arbitrary code on the AVideo server. This could lead to complete system compromise, including data theft, modification, or destruction, as well as the potential for denial-of-service attacks. The specific number of vulnerable installations is unknown, but any AVideo instance running a version up to and including 26.0 is susceptible to this attack.
Recommendation
- Apply the patch from commit 6da79b43484099a0b660d1544a63c07b633ed3a2 or upgrade to a version of AVideo greater than 26.0 to remediate CVE-2026-33717.
- Deploy the Sigma rule
Detect AVideo Malicious File Upload via downloadVideoFromDownloadURLto identify attempts to exploit this vulnerability (log source: webserver). - Monitor web server logs for requests containing the string
aVideoEncoder.json.phpand an invalidresolutionparameter (log source: webserver). - Implement strict input validation on the
resolutionparameter to prevent arbitrary values (code remediation).
Detection coverage 2
Detect AVideo Malicious File Upload via downloadVideoFromDownloadURL
criticalDetects attempts to exploit CVE-2026-33717 by identifying requests to aVideoEncoder.json.php with an invalid resolution parameter.
Detect AVideo Suspicious File Upload in Cache Directory
highDetects creation of PHP files within the AVideo cache directory, which could indicate successful exploitation of CVE-2026-33717.
Detection queries are available on the platform. Get full rules →