CVE-2026-33766: AVideo has SSRF Protection Bypass via HTTP Redirect in Image Download Endpoints

Published Mar 26, 2026
·
Updated

Summary

isSSRFSafeURL() validates URLs against private/reserved IP ranges before fetching, but urlgetcontents() follows HTTP redirects without re-validating the redirect target. An attacker can bypass SSRF protection by redirecting from a public URL to an internal target.

Root Cause

Check-time: isSSRFSafeURL() at objects/functions.php:4066 resolves the hostname and validates the IP.

Use-time: urlgetcontents() at objects/functions.php:1990 calls filegetcontents() with PHP's default followlocation=1 — redirects are followed without re-validation. The wget fallback at line 2047 also follows redirects by default.

Affected endpoint: objects/aVideoEncoderReceiveImage.json.php at lines 67-68, 107-108, 135-136, 160-161: php if (isValidURL($REQUEST['downloadURLimage']) && isSSRFSafeURL($REQUEST['downloadURLimage'])) { $content = urlgetcontents($REQUEST['downloadURLimage']);

Proof of Concept

1. Attacker sets up https://attacker.com/redir to respond with 302 Location: http://169.254.169.254/latest/meta-data/ 2. Authenticated user (with upload+edit permissions) triggers image download: GET /objects/aVideoEncoderReceiveImage.json.php?downloadURLimage=https://attacker.com/redir&... 3. isSSRFSafeURL() resolves attacker.com → public IP → passes validation 4. urlgetcontents() follows 302 redirect to 169.254.169.254 → SSRF

Impact

- Cloud metadata access (AWS IMDSv1, GCP, Azure) - Internal network service access - Bypasses the existing SSRF protection that was added to prevent exactly this class of attack

Note

The curl path in urlgetcontents() does NOT set CURLOPTFOLLOWLOCATION so it is not affected. Only the filegetcontents and wget fallback paths are vulnerable.

Suggested Fix

Set followlocation to 0 in the stream context and handle redirects manually with re-validation, or add isSSRFSafeURL() check inside urlgetcontents() after resolving the final URL.

Other sources

WWBN AVideo is an open source video platform. In versions up to and including 26.0, isSSRFSafeURL() validates URLs against private/reserved IP ranges before fetching, but urlgetcontents() follows HTTP redirects without re-validating the redirect target. An attacker can bypass SSRF protection by redirecting from a public URL to an internal target. Commit 8b7e9dad359d5fac69e0cbbb370250e0b284bc12 contains a patch.

MITRE

Affected Software

2 affected components
composer/wwbn/avideo<=14.3
WWBN AVideo<=26.0

Event History

Mar 26, 2026
Advisory Published
via GitHub·06:10 PM
Data Sourced
via GitHub·06:10 PM
DescriptionWeaknessAffected Software
Mar 27, 2026
CVE Published
via MITRE·02:31 PM
Data Sourced
via MITRE·02:31 PM
DescriptionWeakness
Data Sourced
via NVD·03:16 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·03:16 PM
RemedyAffected Software

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203