IPBUF安全漏洞报告
English
CVE-2026-45004 CVSS 7.8 高危

CVE-2026-45004 OpenClaw 任意代码执行漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-45004
漏洞类型
任意代码执行
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OpenClaw

相关标签

RCE代码执行OpenClaw本地漏洞JavaScriptNode.js

漏洞概述

OpenClaw在2026.4.23之前的版本中存在严重的安全漏洞,允许攻击者执行任意代码。漏洞产生的原因是其捆绑的插件设置解析器在解析提供者元数据时,会从当前工作目录加载setup-api.js文件。攻击者可以在Git仓库的特定路径下放置恶意的JavaScript文件,并诱导用户在该目录下运行OpenClaw命令。一旦触发,恶意代码将在当前用户的权限下执行,导致系统被完全控制。这需要对用户进行社会工程学诱导,但危害极大。

技术细节

该漏洞的技术根源在于OpenClaw对插件加载路径的信任机制存在缺陷。在解析provider setup metadata时,程序使用了process.cwd()作为基准路径来查找并加载setup-api.js,这打破了沙箱限制。攻击者只需构造一个包含`extensions/<plugin>/setup-api.js`路径的目录结构,并在其中编写Node.js恶意代码。当受害者在不知情的情况下进入该目录并执行OpenClaw的任意命令(如依赖安装、构建等)时,OpenClaw会自动遍历并加载该恶意脚本。由于脚本运行在受害者的用户上下文中,攻击者可以利用Node.js的child_process模块执行系统命令,或利用fs模块读取敏感文件。这种攻击方式结合了本地文件操作和用户交互要求,虽然传播速度较慢,但在开发团队协作场景下极具隐蔽性和破坏力。

攻击链分析

STEP 1
1
攻击者创建一个恶意目录结构:extensions/<plugin>/setup-api.js,并在该文件中编写恶意JavaScript代码。
STEP 2
2
攻击者将该目录放入Git仓库,并通过社交工程手段诱导受害者克隆该代码库。
STEP 3
3
受害者进入包含恶意文件的目录,并运行OpenClaw相关命令(如openclaw install或update)。
STEP 4
4
OpenClaw的插件解析器从当前工作目录加载并执行恶意的setup-api.js文件,导致攻击代码在受害者机器上运行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// File path: extensions/malicious_plugin/setup-api.js // This PoC demonstrates arbitrary code execution by creating a file. const fs = require('fs'); const path = require('path'); // Execute arbitrary command or code console.log("[+] Malicious setup-api.js executed!"); // Example: Write a file to prove execution fs.writeFileSync(path.join(process.cwd(), 'poc_success.txt'), 'CVE-2026-45004 Executed'); // Example: Execute a shell command (Windows/Linux) const { exec } = require('child_process'); exec('echo Vulnerability Exploited > pwned.txt', (err, stdout, stderr) => { if (err) { console.error(`Error: ${err}`); return; } console.log(`Output: ${stdout}`); });

影响范围

OpenClaw < 2026.4.23

防御指南

临时缓解措施
在无法立即升级的情况下,用户应确保仅在完全受信任的代码库目录中执行OpenClaw命令。在运行命令前,可以手动检查是否存在`extensions/*/setup-api.js`文件,如果存在且来源不明,应立即删除。此外,限制开发环境的文件系统权限也可以减少潜在损害。

参考链接