行业动态

OpenClaw CVE-2026-33579高危漏洞披露 权限升级可致实例完全接管

· 约 11 分钟阅读

OpenClaw 权限升级漏洞 CVE-2026-33579 曝光,攻击者可从配对权限直接跃升至管理员,实现实例完全接管。

漏洞定位:/pair approve 的授权缺失

CVE-2026-33579 的根源在于 OpenClaw 设备配对流程中的一处授权检查遗漏。当用户或设备执行 /pair approve [request-id] 命令时,命令处理器 extensions/device-pair/index.ts 会调用核心审批函数 src/infra/device-pairing.ts 执行权限授予。问题在于,这个调用过程从未将调用者的安全作用域(callerScopes)传递给核心函数。

核心审批函数因此无法判断”谁在批准什么”。它只看到设备配对请求本身,验证请求格式正确、请求的作用域是有效的 OpenClaw 作用域。由于 operator.admin 是有效作用域,请求通过验证。权限被授予。

按照设计,审批者只能授予自己拥有的权限。但由于 callerScopes 从未被转发,这项检查从未执行。补丁提交 e403decb6e20091b5402780a7ccd2085f98aa3cd 在审批函数签名中添加了 callerScopes 参数,强制要求请求的设备作用域必须是调用者作用域的严格子集。

实际攻击链:四步完成实例接管

攻击路径清晰且低门槛。第一步,攻击者获取 operator.pairing 作用域。对于 63% 暴露在互联网上且未启用认证的 OpenClaw 实例,这一步不需要任何凭据——直接连接即可获得基础配对权限。

第二步,攻击者注册新设备并构造配对请求,将 operator.admin 指定为期望的作用域。这是 OpenClaw 配对流程的正常组成部分,在设备注册请求中指定期望作用域属于预期行为。

第三步,攻击者使用其配对权限会话执行 /pair approve [request-id]。存在漏洞的代码路径处理审批时,不会检查审批者是否有权授予 operator.admin

第四步,攻击者的设备获得 operator.admin。从这一刻起,攻击者控制整个 OpenClaw 实例——所有数据、所有已连接服务、所有 Skills。无需二次利用,无需额外交互。

严重程度评估:CVSS 8.6 的背后

CVE-2026-33579 获得 CVSS 4.0 评分 8.6(HIGH),CVSS 3.1 评分 8.1。CVSS 向量 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N 反映了攻击可从网络发起、利用复杂度低、无需用户交互、只需低权限的前提条件。

对于将 OpenClaw 作为企业级 AI Agent 平台运行的组织,被攻陷的 operator.admin 设备可以读取所有已连接数据源、窃取存储在 Agent skill 环境中的凭据、执行任意工具调用,并横向移动到其他已连接服务。用一个词描述就是:实例完全接管。

需要区分的是,CVE-2026-33579 与同系列的 CVE-2026-32922(CVSS 9.9 CRITICAL)是不同的漏洞。后者针对 device.token.rotate 端点绕过作用域验证,已在 2026.3.11 版本修复。如果用户打了 32922 的补丁但未更新到 2026.3.28,实例仍对 33579 敞开大门。

六周一六洞:配对子系统的安全债务

CVE-2026-33579 不是孤立事件。这是六周内披露的第六个配对相关漏洞,暴露出 OpenClaw 整个设备配对和作用域管理子系统存在系统性的 CWE-863(授权不当)设计债务。

时间线显示:GHSA-4jpw-hj22-2xmc(配对作用域令牌铸造 operator.admin 导致 RCE)影响 ≤2026.3.8 版本;GHSA-63f5-hhc7-cx6x(引导码重放提升作用域)影响 ≤2026.3.12 版本;CVE-2026-32922(device.token.rotate 作用域绕过)影响 ≤2026.3.10 版本;CVE-2026-32042(未配对设备身份自分配 operator 作用域)影响 ≤2026.3.20 版本;CVE-2026-33577(node-pairing.ts callerScopes 验证不足)影响 ≤2026.3.27 版本。

六个 CVE,六周时间,同一攻击面。OpenClaw 团队正在积极修补,但披露频率表明配对子系统尚未经过完整的架构级安全审查。到目前为止,每个补丁都孤立地解决了特定代码路径,而非底层授权模型本身。

受影响版本与修复方案

所有 2026.3.28 之前的 OpenClaw 版本均受影响,包括所有 2026.2.x 版本以及 2026.3.1 至 2026.3.27 版本。唯一的完整修复方案是升级到 OpenClaw 2026.3.28 或更高版本。不存在可以阻止利用的配置变通方案——缺陷在于授权逻辑本身。

npm 安装用户可通过 npm install -g openclaw@2026.3.28 完成升级。Docker 用户可拉取 openclaw/openclaw:2026.3.28 镜像并重新部署。升级后应验证版本号并确认安全补丁提交存在。

2026.3.28 版本同时修复了另外两个安全问题:GHSA-3cw3-5vxw-g2h3(CLI 远程入职凭据泄露,影响 ≤2026.3.24 版本)和 SNYK-JS-OPENCLAW-15797943(网关共享认证作用域升级授权不当)。单次升级即可同时关闭全部三个安全缺口。

实例是否已被利用的检测方法

如果在过去一周内运行过 2026.3.28 之前的版本,应将实例视为潜在已被攻陷状态,并在投入生产前执行以下检查。

列出所有设备及其作用域,查找具有 operator.admin 作用域且由仅持有 operator.pairing 的用户批准的设备。任何由仅配对权限用户在当前版本部署后批准的管理员设备,都是强利用指标。

审计日志中的 /pair approve 事件同样值得关注。对于每个审批事件,应验证审批者账户持有 operator.admin 或更高权限(而非仅 operator.pairing)、审批时间戳与该用户的已知工作会话一致、被批准设备是已知的企业设备。

攻击者使用此漏洞的模式是快速完成设备注册和审批——新设备注册、提交带 operator.admin 的期望作用域、用低权限账户批准,几秒内完成。查找注册和审批时间戳接近、且审批者非已知管理员的设备。

无认证部署的倍增风险

CVE-2026-33579 的前提条件是 operator.pairing 作用域,这意味着认证把守了攻击的第一步。在正确锁定的实例上,攻击者必须先攻陷一个持有配对权限的现有账户才能提升至管理员。

现实情况是,安全研究人员对 135,000 多个公开暴露的 OpenClaw 实例扫描发现,其中 63% 未运行任何认证层。在这些部署上,任何网络访客都可以请求配对访问并在不提供用户名密码的情况下获得 operator.pairing 作用域。本应减缓 CVE-2026-33579 的认证关口根本不存在。

这使得 CVSS 向量中 PR:L(所需权限:低)的评级在实际中接近 PR:N(无需权限)的效果。对于运行 OpenClaw 且设置 auth.enabled: false 的用户,应立即更改该配置。认证不能修复 CVE-2026-33579,但通过要求攻击者在尝试权限升级前攻陷真实账户,可大幅提高攻击成本。

分享到: QQ 微博