CVE-2026-32056OpenClaw 在 2026.2.22 之前的版本中存在严重安全漏洞。由于 `system.run` 函数未对 shell 启动环境变量 `HOME` 和 `ZDOTDIR` 进行清洗,攻击者可利用此缺陷绕过命令允许列表保护。通过注入恶意的启动文件(如 `.bash_profile` 或 `.zshenv`),远程攻击者能够在系统执行允许列表命令之前实现任意代码执行,从而完全控制受影响系统。
该漏洞的核心在于 OpenClaw 的 `system.run` 函数未能对 shell 启动环境变量(特别是 `HOME` 和 `ZDOTDIR`)进行有效的清洗和验证。尽管系统设计了命令允许列表来限制执行的命令,但这一机制存在盲区。攻击者可以利用此漏洞,恶意设置 `HOME` 或 `ZDOTDIR` 变量指向攻击者控制的目录。当系统通过 `system.run` 调用 shell 时,shell 会在执行传入命令前优先读取并执行该目录下的启动脚本(例如 Bash 的 `.bash_profile` 或 Zsh 的 `.zshenv`)。由于这些脚本的执行时机早于允许列表对命令的评估,攻击者可以在启动脚本中植入任意恶意代码。这意味着,即使最终执行的命令在允许列表内,攻击者也能在之前获得代码执行权限,从而成功绕过安全限制获取服务器控制权。