乐于分享
好东西不私藏

七连爆雷!OpenClaw 再曝7个高危漏洞,权限管控全线失效

七连爆雷!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 自动生成