OpenClaw 攻击面分析

调研日期:2026-04-16 | 版本:2026.4.15-beta.1 | 仓库:github.com/openclaw/openclaw (358K+ stars)

1. 项目概述

OpenClaw 是一个大规模开源个人 AI 助手平台,采用 Gateway + Agent + Channel 架构,支持 25+ 消息平台集成(WhatsApp、Telegram、Slack、Discord、微信、QQ 等),使用 TypeScript 开发,支持本地部署或云端 VPS 运行。

核心架构组件:

组件路径功能
Gatewaysrc/gateway/HTTP/WebSocket 控制面(端口 18789),处理认证、路由、API
Agent Runtimesrc/agents/LLM 交互、工具调用、会话/上下文/记忆管理
Channel 集成src/channels/ + extensions/25+ 消息平台适配器和 Webhook 接收器
Node Hostsrc/node-host/命令执行沙箱(默认关闭)
Skillsskills/ + ClawHub可扩展能力模块(ClawHub 上 13,700+ 个)
MCPsrc/mcp/Model Context Protocol 集成
Memoryextensions/memory-*LanceDB 向量存储代理记忆
Proxy Capturesrc/proxy-capture/MITM 代理流量捕获

2. 信任模型

OpenClaw 采用 单用户可信运营者 模型:

  • 每个 Gateway 实例仅服务一个可信用户
  • 经过认证的 Gateway 调用者被视为可信运营者
  • AI 模型/Agent 不是可信主体(假设 Prompt Injection 是可能的)
  • 安全边界依赖于:主机/配置信任、认证、工具策略、沙箱、执行审批
  • 单独的 Prompt Injection 不被视为漏洞,除非跨越安全边界

3. 攻击面分析

3.1 网络攻击面 🔴

Gateway HTTP/WebSocket 服务器(端口 18789):

  • REST API 和 WebSocket 端点暴露
  • 共享 Token 或密码认证
  • OpenAI 兼容 API 接口:/v1/chat/completions、/v1/responses
  • 工具调用端点:/tools/invoke
  • MCP HTTP 端点:src/gateway/mcp-http.ts

Webhook 接收器:

  • 每个 Channel 集成暴露独立的 Webhook 接收端点
  • 多个 Webhook 存在 预认证解析漏洞(Feishu 在签名验证前解析请求体、Synology Chat 速率限制绕过、语音通话 Webhook 资源耗尽)

SSRF 风险:

  • web-fetch 工具的 assertPublicHostname 不完整(CVE-2026-6011)
  • Channel 扩展配置的 base URL 未做 SSRF 防护(CVE-2026-28476)

Bridge Port(18790): 辅助通信端口,增加攻击面

3.2 Prompt Injection 攻击面 🔴🔴(最高风险)

威胁 ID威胁评级描述
T-EXEC-001直接 Prompt InjectionCRITICAL通过 25+ 消息渠道注入恶意指令操纵 Agent 行为
T-EXEC-002间接 Prompt InjectionHIGH嵌入在 URL、邮件、Webhook 内容中的恶意载荷
T-EXEC-003工具参数注入HIGH通过 Prompt Injection 操纵工具参数执行非预期命令
T-EXEC-004执行审批绕过HIGH命令混淆、别名利用、路径操纵绕过 exec 审批白名单

关键问题: 威胁模型承认"无命令清理"是残余风险。

3.3 Skills/插件攻击面 🔴🔴(最高风险)

这是最危险的攻击向量:

威胁 ID威胁评级描述
T-EXEC-005恶意 Skill 代码执行CRITICALSkills 默认以完整 Agent 权限运行,无沙箱。审核系统使用正则匹配,易被绕过
T-PERSIST-001Skill 持久化CRITICAL恶意 Skills 设计上可在重启后持久存在
T-EXFIL-003Skill 凭证窃取CRITICALSkills 可读取环境变量、配置文件、~/.openclaw/ 中的 API 密钥
T-EVADE-004分阶段载荷投递HIGHSkills 可通过初始扫描后在运行时下载恶意载荷,"运行时获取不受监控"

ClawHub 生态风险:

  • 13,700+ 社区 Skills,安全审计发现约 373 个恶意 Skill
  • awesome-openclaw-skills 从 13,729 个中过滤掉了 7,215 个(垃圾、重复、低质量、恶意)

3.4 认证与授权攻击面 🟠

威胁 ID威胁评级描述
T-ACCESS-003Token 明文存储HIGHToken 以明文存储在 ~/.openclaw/credentials/
T-PERSIST-004Token 不过期HIGHToken 默认不设过期时间
T-ACCESS-001配对码拦截MEDIUM设备配对有 30 秒宽限期可被利用
T-ACCESS-002AllowFrom 欺骗MEDIUM发送者身份欺骗依赖 Channel 实现
GHSA-r3v5权限提升HIGHdevice.pair.approve 可从 operator.pairing 提升到 operator.admin

3.5 数据泄露攻击面 🟠

威胁 ID威胁评级描述
T-EXFIL-001web_fetch 外传数据HIGHAgent 可被指示 POST 敏感数据到外部 URL(外部 URL 设计上允许)
T-EXFIL-004会话记录泄露HIGH~/.openclaw/sessions/ 中的会话记录可被 Skills 读取
T-EXFIL-002未授权消息发送MEDIUMAgent 可被诱导向攻击者发送含敏感数据的消息

3.6 执行环境攻击面 🔴

  • 沙箱默认关闭:agents.defaults.sandbox.mode 默认为 off,命令直接在宿主机执行
  • Exec 审批局限:审批绑定"精确请求上下文",但不覆盖所有解释器/运行时加载器/子命令/参数组合
  • Node Host:src/node-host/invoke-system-run.ts 使用白名单机制,但存在命令清理缺口

3.7 拒绝服务攻击面 🟡

  • 语音通话 Webhook 无认证资源耗尽(GHSA-36cp)
  • Nostr 入站 DM 在认证前触发加密计算(GHSA-2j53)
  • Feishu Webhook 在签名验证前解析请求体(GHSA-8f9r)
  • 远程媒体错误响应触发无界内存分配(GHSA-hm63)

4. 已知漏洞(CVE/GHSA)

ID严重性摘要
CVE-2026-6011Lowweb-fetch.ts 中 assertPublicHostname SSRF(已修补)
CVE-2026-28476MediumChannel 扩展 base URL SSRF(修补不完整)
GHSA-r3v5-2grc-429hHighdevice.pair.approve RCE + 权限提升
GHSA-9gvx-vj57-vqqxMediumCanvas 本地请求绕过认证
GHSA-p6j4-wvmc-vx2hMediumTlon cite 扩展在授权前执行
GHSA-59xc-5v89-r7prMediumSynology Chat Webhook 预认证速率限制绕过
GHSA-hm63-vwj4-mj2qMedium远程媒体无界内存分配
GHSA-2j53-2c28-g9v2MediumNostr 未认证加密计算
GHSA-8f9r-gr6r-x63qMediumFeishu Webhook 预认证解析
GHSA-36cp-mh65-x882Medium语音 Webhook 未认证资源耗尽

5. 安全加固建议

5.1 部署加固

  1. 启用沙箱模式:将 agents.defaults.sandbox.mode 设为 docker 或 vm
  2. 仅监听 localhost:如需外部访问,使用反向代理 + TLS
  3. 设置 Token 过期:配置 Token TTL,定期轮换
  4. 加密凭证存储:使用系统密钥链代替明文文件
  5. 网络隔离:将 OpenClaw 放入独立网络段,限制出站连接

5.2 Skills 安全

  1. 仅安装审计过的 Skills:使用 awesome-openclaw-skills 筛选列表
  2. 审查 Skill 源码:安装前检查是否有网络请求、文件系统访问、环境变量读取
  3. 监控运行时行为:记录 Skill 的网络和文件系统活动
  4. 禁止自动安装:需要人工审批每个 Skill 安装

5.3 运行时防护

  1. 配置严格的 exec 白名单:仅允许必要的命令
  2. 启用 TOTP 审批:关注 #67440 的进展
  3. 限制 web_fetch 目标:配置 URL 白名单,阻止内网访问
  4. 监控会话目录:保护 ~/.openclaw/sessions/ 目录权限

5.4 Channel 安全

  1. 最小化 Channel 暴露:仅启用需要的 Channel 集成
  2. 使用强 Webhook Secret:为每个 Channel 配置唯一的高熵密钥
  3. 配置 AllowFrom:限制授权发送者列表
  4. 速率限制:在反向代理层面对所有 Webhook 端点设置速率限制

6. 参考资源

资源链接
主仓库github.com/openclaw/openclaw
安全策略github.com/openclaw/openclaw/blob/main/SECURITY.md
威胁模型trust.openclaw.ai/trust/threatmodel
事件响应计划github.com/openclaw/openclaw/blob/main/INCIDENT_RESPONSE.md
Skills 市场clawhub.ai
安全联系security@openclaw.ai
DeepWiki 分析deepwiki.com/openclaw/openclaw

Comments (0)

No comments yet

imfht
April 15, 2026