CVE-2026-32003OpenClaw 2026.2.22之前的版本在system.run函数中存在严重的安全缺陷,即环境变量注入漏洞。由于未能正确处理环境变量,攻击者可以利用SHELLOPTS和PS4变量绕过严格的命令允许列表机制。具有高权限的攻击者若能控制请求范围的环境变量,即可利用bash的xtrace扩展机制,在预期允许的命令主体之外执行任意shell代码。此漏洞虽需高权限触发,但成功利用后可导致系统被完全控制,严重威胁数据的机密性、完整性和可用性。
该漏洞的根源在于OpenClaw的system.run函数在执行用户指定的命令时,直接将请求范围内的环境变量传递给了子进程的Shell环境。在Bash中,SHELLOPTS环境变量可以强制开启调试模式(如xtrace),而PS4变量用于定义调试提示符。攻击者通过设置SHELLOPTS为包含'xtrace'的值,强制Shell进入调试模式,并将恶意命令注入到PS4变量中。当system.run执行原本在允许列表中的安全命令时,Shell会先解析环境变量。由于处于xtrace模式,Shell在执行命令前会展开PS4的内容。因为PS4中可以使用命令替换(如$(cmd)),恶意代码便会在此时被解析并执行,从而绕过了针对命令本身的参数校验,实现了在受控环境下的任意代码执行。