The fix for CVE-2026-27732 is incomplete.
objects/aVideoEncoder.json.php still allows attacker-controlled downloadURL values with common media or archive extensions such as .mp4, .mp3, .zip, .jpg, .png, .gif, and .webm to bypass SSRF validation. The server then fetches the response and stores it as media content.
This allows an authenticated uploader to turn the upload-by-URL flow into a reliable SSRF response-exfiltration primitive.
objects/aVideoEncoder.json.php accepts attacker-controlled downloadURL and passes it to downloadVideoFromDownloadURL().
Inside that function:
isSSRFSafeURL() is skipped for common media and archive extensionsurl_get_contents()The current code still contains:
url_get_contents() itselfThis means internal URLs such as:
http://127.0.0.1:9998/probe.mp4
remain reachable from the application host.
This issue is best described as an incomplete fix / patch bypass of CVE-2026-27732, not a separate unrelated SSRF class.
http://127.0.0.1:9998/probe.mp4
POST /objects/aVideoEncoder.json.php
downloadURL=http://127.0.0.1:9998/probe.mp4
format=mp4
videos_id with first_request=1 so the fetched bytes land in the normal media path.GET /objects/videos.json.php?showAll=1
videosURL.mp4.url.An authenticated uploader can make the AVideo server fetch loopback or internal HTTP resources and persist the response as media content by supplying a downloadURL ending in an allowlisted extension such as .mp4, .jpg, .gif, or .zip. Because SSRF validation is skipped for those extensions, the fetched body is stored and later retrievable through the generated /videos/... media URL. Successful exploitation allows internal response exfiltration from private APIs, admin endpoints, or other internal services reachable from the application host.
isSSRFSafeURL() to all downloadURL inputs regardless of extensionurl_get_contents() so call sites cannot skip it{
"github_reviewed_at": "2026-04-08T00:08:47Z",
"severity": "HIGH",
"cwe_ids": [
"CWE-918"
],
"github_reviewed": true,
"nvd_published_at": "2026-04-07T20:16:31Z"
}