CVE-2026-31250CosyVoice 在特定提交版本的 average_model.py 模型平均工具中存在不安全反序列化漏洞(CWE-502)。该脚本使用 torch.load() 加载 PyTorch 检查点文件(epoch_*.pt)时,未启用 weights_only=True 安全参数。这允许攻击者通过 pickle 模块反序列化任意 Python 对象。攻击者可提供包含恶意代码的检查点文件,当受害者使用该工具对目录中的模型进行平均处理时,将触发任意代码执行。该漏洞通过网络利用,无需认证和交互,对系统机密性、完整性和可用性构成威胁。
该漏洞的核心机制在于 CosyVoice 的 average_model.py 脚本对 PyTorch 模型权重的反序列化过程缺乏安全限制。PyTorch 的 torch.load() 函数底层使用 Python 的 pickle 模块来序列化和反序列化对象。Pickle 在反序列化过程中能够执行定义在 __reduce__ 方法中的任意代码。在受影响的 commit 中,代码直接调用 torch.load() 处理用户提供的 epoch_*.pt 文件。攻击者可以构造一个特制的 .pt 文件,其中包含指向系统命令(如反弹 Shell)的恶意 payload。当受害者运行脚本并遍历包含该恶意文件的目录时,torch.load() 会解析文件内容并执行其中的代码。由于攻击向量(AV:N)和网络可达性,且无需用户交互(UI:N),攻击者可轻易利用此漏洞在受害者服务器上实现远程代码执行(RCE)。