七连爆雷!OpenClaw 再曝7个高危漏洞,权限管控全线失效
🚨 紧急预警
2026年6月16日公开。OpenClaw 再次集中披露 7 个高危漏洞,CVSS 评分从 8.1 到 8.8 不等,涵盖授权绕过、命令白名单突破、环境变量注入等多种攻击面。作为一个拥有 37.9 万 GitHub Stars 的 AI 助手框架,OpenClaw 在中国拥有庞大的开发者社区——尤其在飞书、微信、钉钉等国内 IM 平台的集成场景中,这些漏洞的利用门槛远低于评分暗示。如果你正在运行 OpenClaw,请立即检查版本。
📌 前情提要:就在过去两个月里,我们已经连续三次报道了 OpenClaw 的安全漏洞——从 5 月初的 CVE-2026-43534/43566(CVSS 9.1/9.8),到 5 月 6 日的 CVE-2026-43575/44109/43581(CVSS 9.6/9.8/9.9),再到此前的 CVE-2026-35674/32905/35630(授权绕过三连)。如今,第四波来了——7 个全新的高危漏洞再次暴露了 OpenClaw 权限管控体系的系统性缺陷。
🔍 快速自查(2 分钟)
第一步:检查 OpenClaw 版本
这 7 个漏洞影响不同版本段。确认你的 OpenClaw 版本是否在受影响范围内:
# 如果使用 Docker 部署
docker inspect --format='{{.Config.Image}}' $(docker ps -q --filter ancestor=openclaw/openclaw)
docker exec <container_id> openclaw --version
# 如果使用 npm 安装
npm list openclaw 2>/dev/null || npx openclaw --version
# 如果从源码构建
cd /path/to/openclaw && git log --oneline -1
受影响版本对照表:
| CVE 编号 | 影响版本 | CVSS | 修复版本 |
| CVE-2026-53843 | < 2026.5.26 | 8.8 | 2026.5.26 |
| CVE-2026-53853 | < 2026.5.12 | 8.3 | 2026.5.12 |
| CVE-2026-53849 | < 2026.5.7 | 8.1 | 2026.5.7 |
| CVE-2026-53855 | < 2026.4.2 | 8.1 | 2026.4.2 |
| CVE-2026-53857 | < 2026.5.3 | 8.1 | 2026.5.3 |
| CVE-2026-53864 | < 2026.5.26 | 8.1 | 2026.5.26 |
| CVE-2026-53866 | < 2026.5.12 | 8.1 | 2026.5.12 |
⚠️ 注意:7 个漏洞的修复版本分散在 2026.4.2 到 2026.5.26 之间。最安全的做法是升级到 2026.5.26 或更高版本,这个版本覆盖了全部 7 个修复。如果你只升级到中间版本(如 2026.5.7),仍有 3-4 个漏洞未修复。
第二步:检查设备配对历史
CVE-2026-53843 的核心问题是:已撤销的配对设备可以重新建立连接。检查你的 OpenClaw 是否有过设备配对后又被撤销的操作:
# 检查当前的配对设备列表
docker exec <container_id> openclaw device list
# 检查是否存在已撤销但仍活跃的会话
docker logs <container_id> 2>&1 | grep -i "pairing\|revoked\|session"
# 如果有非预期的活跃 WebSocket 连接
docker exec <container_id> openclaw session list --all
第三步:检查 allowFrom 配置
多个漏洞(CVE-2026-53849、53857)利用了 allowFrom 功能中基于可变显示名的身份验证缺陷。如果你配置了 allowFrom 策略来限制 Discord 或 Zalo 用户,这些策略可能已被绕过:
# 检查 allowFrom 配置中是否使用了用户名而非用户 ID
grep -r "allowFrom\|allow_from" /path/to/openclaw/config/
# 确认策略条目使用的是不可变的用户 ID(如 Discord snowflake ID)
# 而非可变的显示名(如 username 或 nickname)
→ 如果发现 allowFrom 使用了用户名或显示名 → 策略可能已被绕过,需立即改为用户 ID
⚠️ 风险确认表
以下是本次 7 个漏洞涉及的已确认风险和潜在风险:
| 风险类型 | CVE | 影响描述 |
| 已撤销设备重连 | CVE-2026-53843 | 已撤销配对的设备可通过残留的 pairing-session 绕过授权检查重新获得访问权限 |
| 命令白名单绕过 | CVE-2026-53853 | exec allowlist 参数模式验证可被绕过,攻击者可执行任意系统命令 |
| 身份伪造提权 | CVE-2026-53849 | allowFrom 基于可变显示名的验证机制可被利用,攻击者通过修改 Discord 昵称冒充授权用户 |
| inline-eval 代码执行 | CVE-2026-53855 | 已认证操作者可通过 inline-eval 语法绕过安全沙箱,直接执行任意 JavaScript 代码 |
| Zalo 策略绕过 | CVE-2026-53857 | Zalo 联系人中可变属性被用作身份标识,攻击者可通过修改属性绕过 allowFrom 策略 |
| 环境变量注入 | CVE-2026-53864 | 主机环境变量中来自不受信任来源的值被直接传入 OpenClaw,可能导致命令注入或配置篡改 |
| Shell 命令解析绕过 | CVE-2026-53866 | shell inline-command 解析中的 allowlist 绕过允许执行未授权的系统命令 |
🛡️ 自救指南
第一步:立即升级到 2026.5.26+
这是唯一可靠的安全修复方案。由于 7 个漏洞分散在不同修复版本中,必须直接升级到 2026.5.26 或更高版本,中间版本无法覆盖全部漏洞。
# Docker 方式升级(推荐)
docker pull openclaw/openclaw:latest
docker stop <old_container>
docker run -d --name openclaw \
-v /path/to/config:/root/.config/openclaw \
openclaw/openclaw:latest
# npm 方式升级
npm update -g openclaw
# 源码方式升级
cd /path/to/openclaw
git pull origin main
npm install && npm run build
pm2 restart openclaw
第二步:重建所有设备配对
升级后,撤销所有现有的设备配对关系并重新建立。CVE-2026-53843 证明旧的配对会话可能在撤销后仍残留权限:
# 撤销所有配对设备
openclaw device revoke --all
# 清除残留的配对会话缓存
rm -rf /root/.config/openclaw/pairing-sessions/
rm -rf /root/.config/openclaw/sessions/
# 重新配对你信任的设备
openclaw device pair <trusted-device-id>
第三步:审查 allowFrom 策略配置
将所有基于用户名或显示名的 allowFrom 条目替换为不可变的用户 ID。CVE-2026-53849 和 CVE-2026-53857 证明,基于可变属性的策略等同于没有策略:
# ❌ 错误:使用可变显示名
allowFrom:
discord:
- username: "alice"
- username: "bob"
# ✅ 正确:使用不可变的用户 ID
allowFrom:
discord:
- "123456789012345678" # Discord snowflake ID
- "987654321098765432"
第四步:检查服务器环境变量
CVE-2026-53864 揭示了一个容易被忽视的攻击面:OpenClaw 会读取宿主机的环境变量。攻击者如果能控制传入的环境变量值(如通过 CI/CD pipeline、Docker Compose env_file 或共享配置),就可能注入恶意内容:
# 检查 OpenClaw 读取了哪些环境变量
env | grep -i openclaw
env | grep -i "CLAW_\|OPENCLAW_"
# 确保 Docker/Compose 中的环境变量来源可信
# 检查 env_file 是否包含可疑内容
docker inspect <container_id> --format='{{range .Config.Env}}{{println .}}{{end}}'
第五步:禁用 inline-eval 功能
CVE-2026-53855 的利用前提是 inline-eval 功能开启。如果你不需要在对话中执行动态代码求值,应在配置中显式禁用:
# 在 openclaw config 中禁用
security:
eval:
inline: false
shell: restricted # 或 false
第六步:审查访问日志
升级完成后,检查过去数周内的访问日志,寻找异常活动迹象——特别是来自已撤销设备的连接尝试或未授权的命令执行:
# 搜索可疑活动
grep -i "revoked\|unauthorized\|eval\|exec\|shell" /var/log/openclaw/access.log
# 检查是否有来自非预期 IP 的 WebSocket 连接
grep "WebSocket" /var/log/openclaw/access.log | \
awk '{print $1}' | sort | uniq -c | sort -rn | head -20
🔬 技术深度分析
七个漏洞的根因:权限模型的系统性失效
从技术角度来看,这 7 个漏洞并非孤立事件,而是暴露了 OpenClaw 权限管控体系在四个不同层面的系统性缺陷。这比单个漏洞更值得警惕——因为系统性缺陷意味着类似问题可能在未来反复出现。
层面一:身份验证层(CVE-2026-53843、CVE-2026-53849、CVE-2026-53857)。这三个漏洞的共同特征是:身份验证依赖于可变属性而非不可变标识符。配对会话在撤销后没有完全清除(53843),allowFrom 策略使用 Discord/Zalo 的用户名或昵称作为身份标识(53849、53857)——这些属性用户可以随时修改。在安全工程中,这是一个基本的反模式:永远不要用可变属性做身份验证。正确的做法是使用平台提供的不可变用户 ID(如 Discord 的 snowflake ID)。
层面二:命令执行层(CVE-2026-53853、CVE-2026-53866)。exec allowlist 旨在限制 OpenClaw 可以执行哪些系统命令,但参数模式验证存在缺陷(53853),shell inline-command 解析也存在绕过路径(53866)。这意味着白名单机制形同虚设——攻击者可以通过巧妙的参数构造绕过限制,执行任意命令。
层面三:代码执行层(CVE-2026-53855)。inline-eval 功能允许在对话中动态求值 JavaScript 表达式,但安全沙箱存在绕过路径。已认证的操作者可以利用特殊语法逃逸沙箱,直接在宿主机上执行任意代码。这个问题本质上与之前的沙箱逃逸漏洞(CVE-2026-43534 等)属于同一类别——OpenClaw 的沙箱边界始终不够坚固。
层面四:环境配置层(CVE-2026-53864)。OpenClaw 从宿主机环境变量中读取配置时,未对来源不可信的环境变量值进行充分过滤和验证。攻击者如果能控制环境变量的注入点(例如 CI/CD pipeline 的参数、Docker Compose 的 env_file、共享配置服务器),就可能通过环境变量注入恶意命令或篡改配置。
攻击链还原:从身份伪造到系统接管
让我们还原一个假设性的完整攻击链,展示攻击者如何组合利用这些漏洞:
第一阶段:身份伪造。攻击者获知目标 OpenClaw 实例使用了 allowFrom 策略限制 Discord 用户访问。攻击者将自己的 Discord 昵称改为 allowFrom 列表中的授权用户名(CVE-2026-53849),或者修改 Zalo 联系人属性绕过策略(CVE-2026-53857)。通过这种方式,攻击者成功冒充授权用户接入 OpenClaw。
第二阶段:白名单突破。攻击者获得初始访问权限后,尝试利用 exec 功能执行系统命令。发现命令白名单(CVE-2026-53853)和 shell inline-command 解析(CVE-2026-53866)存在绕过路径。通过精心构造的参数(例如利用通配符、路径遍历或命令链接符),攻击者成功执行了白名单之外的命令。
第三阶段:沙箱逃逸与持久化。攻击者利用 inline-eval 语法绕过 JavaScript 沙箱(CVE-2026-53855),获得在宿主机上执行任意代码的能力。同时,攻击者通过环境变量注入(CVE-2026-53864)在 OpenClaw 的启动配置中植入后门,确保即使实例重启也能维持访问权限。
第四阶段:横向渗透。攻击者利用已撤销配对设备的残留会话(CVE-2026-53843)持续访问目标实例,即使管理员发现了异常并撤销了设备配对也无济于事。攻击者可以借此持续收集企业内部通讯数据(飞书消息、Discord 频道内容等),甚至利用 OpenClaw 的 IM 集成能力向其他系统发起攻击。
OpenClaw 安全漏洞编年史:两个月五波十五个漏洞
回顾 OpenClaw 的安全历史,我们可以清晰地看到一条令人担忧的轨迹——不是”偶尔出问题”,而是”反复在同一个地方跌倒”:
| 时间 | CVE | 最高分 | 核心问题 |
| 2026-04 | CVE-2026-35674/32905/35630 | – | 授权绕过三连 |
| 2026-05-05 | CVE-2026-43534/43566 | 9.8 | 沙箱逃逸 + 凭证泄露 |
| 2026-05-06 | CVE-2026-43575/44109/43581 | 9.9 | 飞书/Discord 权限提升 |
| 2026-05-31 | OpenClaw 3×CVE | – | 授权绕过集群 |
| 2026-06-16 | CVE-2026-53843/53853/53849/53855/53857/53864/53866 | 8.8 | 身份验证 + 命令执行 + 环境注入七连 |
从 4 月到 6 月,短短两个多月时间里,OpenClaw 已经披露了五波共计至少 18 个高危漏洞。更令人担忧的是,这些漏洞的根因高度重复——授权绕过和沙箱逃逸是反复出现的主题。这说明 OpenClaw 的安全架构存在深层次的设计缺陷,单纯”打补丁”式的修复可能无法从根本上解决问题。
值得注意的是,本次披露的 7 个漏洞修复版本分散在 2026.4.2 到 2026.5.26 之间——跨度超过一个半月。这意味着 OpenClaw 团队是在逐步发现和修复这些问题,而不是一次性进行安全审计。对于安全敏感的企业用户来说,这种”发现一个修一个”的模式意味着:在 2026.4.2 到 2026.5.26 之间升级的用户,可能已经修复了 CVE-2026-53855(inline-eval 绕过),但仍然暴露在 CVE-2026-53843(配对会话残留)的风险下。
🏢 中国用户影响:为什么你应该格外关注
OpenClaw 在中国开发者社区中拥有极其庞大的用户群体,这在多个维度上放大了本次漏洞的影响面:
飞书深度集成场景。OpenClaw 原生支持飞书作为消息平台,中国大量企业将 OpenClaw 部署为内部 AI 助手,通过飞书群聊或私聊与 OpenClaw 交互。CVE-2026-53849 的 allowFrom 绕过意味着:即使管理员只允许特定飞书用户使用 OpenClaw,攻击者仍可通过修改飞书昵称绕过限制,向企业内部 AI 助手发送任意指令——这些指令可能触发 CVE-2026-53853 的命令执行漏洞。
微信/钉钉自定义集成。由于 OpenClaw 支持自定义 IM 插件,大量中国企业通过 webhook 或自定义适配器将 OpenClaw 接入微信企业版和钉钉。这些自定义集成通常缺乏独立的安全审计,CVE-2026-53864 的环境变量注入漏洞在这种场景下尤其危险——许多企业通过环境变量传递微信 AppSecret 或钉钉 AccessKey。
自部署比例极高。与海外用户倾向使用托管服务不同,中国开发者和企业由于网络隔离和数据合规要求,绝大多数选择自行部署 OpenClaw。这意味着漏洞修复完全依赖用户主动升级——而 OpenClaw 的版本碎片化问题(7 个修复分布在 5 个不同版本中)使得升级决策变得复杂。很多企业可能”只升了最新的 CVE 修复版本”,却遗漏了其他漏洞的修复。
🏛️ 企业应急响应建议
- 资产盘点:立即清点企业内所有 OpenClaw 部署实例(包括开发测试环境),记录当前版本号。很多企业可能在多个部门、多个项目组中独立部署了 OpenClaw,统一升级比想象中更困难。
- 风险评估:根据各实例的部署方式(Docker/源码/托管)和集成平台(飞书/Discord/微信/钉钉)评估风险等级。与飞书集成的实例风险最高(allowFrom 绕过 + 命令执行组合),与 Discord 集成的实例次之。
- 分阶段升级:优先升级与飞书/微信集成的生产环境实例(风险最高),其次是开发测试环境。升级后务必重建设备配对关系并审查 allowFrom 配置。
- 监控增强:在升级后的 72 小时内加强监控,特别关注非工作时间的异常 WebSocket 连接、来自未知设备的请求以及 exec/eval 相关的日志条目。这些是攻击者尝试利用残留权限的典型信号。
- 长期策略:考虑在 OpenClaw 前部署一个反向代理或 API 网关,对传入请求进行二次身份验证和速率限制。即使 OpenClaw 自身的权限管控存在缺陷,外部安全层也能提供纵深防御。同时,建议对 allowFrom 策略建立定期审计机制(至少每季度一次),确保没有使用可变属性作为身份标识。
💡 结语:权限管控不是”加一个 if”
OpenClaw 两个月的五波漏洞,揭示了一个在 AI Agent 领域普遍存在的安全困境:权限管控的复杂性远超大多数开发者的预期。AI 助手需要连接 IM 平台、执行系统命令、访问文件系统、调用外部 API——每一个连接点都是一个潜在的安全边界。当这些边界由多个不同来源的身份标识、多种不同语法的命令白名单、以及多个不同版本的修复补丁共同构成时,出现系统性漏洞几乎是必然的。
对 OpenClaw 用户而言,最重要的不是关注单个 CVE 的评分——而是认识到:AI Agent 的安全模型需要被当作一个整体的系统工程来对待,而不是发现一个洞补一个洞。将 allowFrom 策略改为不可变 ID、限制 inline-eval 的使用、在 AI Agent 前部署独立的安全层——这些措施的价值远大于单纯升级版本号。
对于安全从业者和 AI 应用开发者而言,OpenClaw 的案例提供了一个宝贵的教训:任何允许 AI 助手执行系统命令或访问外部资源的架构,都必须从设计阶段就考虑安全边界,而不是在用户量达到 37.9 万星之后才开始修补。
引用链接
- [1] NVD – CVE-2026-53843/53849/53853/53855/53857/53864/53866
- [2] OpenClaw GitHub Repository (openclaw/openclaw)
- [3] 龙虾池子 – OpenClaw CVE-2026-43534/43566 报道
- [4] 龙虾池子 – OpenClaw CVE-2026-43575/44109/43581 报道
龙虾池子 · AI 自动生成
夜雨聆风