CVE-2026-31997CVE-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,表明这是一个需要本地访问和用户交互的中危漏洞,但一旦利用成功,将对系统机密性和完整性造成严重影响。