IPBUF安全漏洞报告
English
CVE-2026-31997 CVSS 6.0 中危

CVE-2026-31997 OpenClaw system.run审批后可执行文件重绑定漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-31997
漏洞类型
权限提升/路径劫持/命令执行
CVSS评分
6.0 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
OpenClaw

相关标签

OpenClaw可执行文件重绑定路径劫持权限提升命令注入system.runPATH操纵CVE-2026-31997

漏洞概述

CVE-2026-31997是OpenClaw软件中的一个安全漏洞,存在于2026年3月1日之前的版本中。该漏洞的根本原因在于OpenClaw在处理system.run命令审批时,未能正确固定可执行文件的身份验证。当用户提供的argv[0]参数不是完整路径形式时,系统仅依赖程序名称进行审批验证,而没有验证实际执行文件的完整路径。攻击者利用这一特性,可以在命令审批通过后、环境变量被修改的情况下,通过操纵PATH环境变量使系统解析并执行与原始审批时不同的恶意二进制文件。这种攻击方式被称为「可执行文件重绑定攻击」(Executable Rebind Attack),它绕过了用户的安全审批机制,最终实现任意命令执行,严重威胁系统安全。

技术细节

OpenClaw的system.run审批机制存在设计缺陷。当用户执行需要审批的命令时,系统会检查argv[0]中指定的程序名称是否在白名单中。然而,该检查仅针对程序名称本身,而非完整的文件路径。攻击者可以按照以下步骤利用此漏洞:首先,提交一个看似合法的命令请求(如执行python脚本);审批通过后,攻击者修改PATH环境变量,将包含恶意可执行文件的目录添加到PATH前端;当下次执行相同名称的命令时,系统会优先找到攻击者植入的恶意python二进制文件而非原始程序;由于程序名称已通过审批,系统不会再次验证,执行了攻击者控制的代码。该漏洞的CVSS向量为CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N,表明这是一个需要本地访问和用户交互的中危漏洞,但一旦利用成功,将对系统机密性和完整性造成严重影响。

攻击链分析

STEP 1
步骤1
攻击者向OpenClaw提交一个需要审批的命令请求,使用非路径形式的程序名称(如python script.py)
STEP 2
步骤2
系统审批该命令请求,因为程序名称在白名单中且符合审批规则
STEP 3
步骤3
审批通过后,攻击者获得命令执行机会,此时修改PATH环境变量,添加包含恶意二进制文件的目录
STEP 4
步骤4
当执行相同名称的命令时,操作系统根据PATH顺序优先找到攻击者植入的恶意python二进制文件
STEP 5
步骤5
由于程序名称已通过审批验证,OpenClaw不会再次验证实际执行的文件路径,导致恶意代码被执行
STEP 6
步骤6
攻击者成功实现任意命令执行,获得系统控制权,可窃取敏感信息或进一步渗透

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2026-31997 PoC - Executable Rebind Attack # This PoC demonstrates the PATH manipulation after approval # Step 1: Create malicious fake binary cat > /tmp/python << 'EOF' #!/bin/bash echo "Malicious python executed!" whoami id cat /etc/passwd EOF chmod +x /tmp/python # Step 2: Modify PATH to hijack execution # After OpenClaw approval for legitimate command # Attacker adds malicious directory to PATH export PATH=/tmp:$PATH # Step 3: Execute command with same name # OpenClaw will execute /tmp/python instead of /usr/bin/python python -c "print('test')" # Result: Arbitrary command execution via rebind attack

影响范围

OpenClaw < 2026.3.1

防御指南

临时缓解措施
临时缓解措施包括:1) 严格控制PATH环境变量,确保其不可被普通用户修改;2) 使用绝对路径而非相对程序名称提交审批请求;3) 限制低权限用户的环境变量修改权限;4) 监控异常的命令执行行为;5) 考虑在审批通过后锁定相关环境变量。但最根本的解决方案仍是尽快升级到OpenClaw 2026.3.1版本。

参考链接

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