OpenClaw 2026.3.2 — 2026.3.8 权限变更与安全加固

1 阅读10分钟

OpenClaw 2026.3.2 — 2026.3.8 权限变更与安全加固

OpenClaw Logo

作者:吴佳浩

撰稿时间:2026-3-9

测试版本:OpenClaw 2026.3.2 — 2026.3.8

适用版本: OpenClaw 2026.3.2 — 2026.3.8 问题现象: 升级后大量默认操作权限消失,编码 / 系统工具不可用 影响范围: 新安装用户、重置过配置的用户,以及依赖 Skills 下载功能的部署


目录

  1. 问题根因分析
  2. macOS 恢复步骤
  3. Windows 恢复步骤
  4. 完整配置参考
  5. 验证是否恢复成功
  6. 2026.3.8 新增安全问题
  7. 常见问题 FAQ

一、问题根因分析

1.1 版本 2026.3.2 的两项破坏性变更

2026.3.2 引入了两项 Breaking Changes,直接导致默认权限收窄。老用户如果配置完整则影响有限,但新安装或配置重置的用户会立即感受到权限缺失。

配置项旧版默认值2026.3.2 新默认值实际影响
tools.profilecoding / systemmessaging编码与系统工具默认关闭
acp.dispatch.enabledfalsetrueACP 路由在未显式配置时自动启用

tools.profile 的变更是大多数用户权限消失的直接原因。旧版新安装会默认附带编码和系统操作工具;2026.3.2 起改为仅开放消息收发类工具,若需要恢复编码能力,必须手动在配置文件中声明。

acp.dispatch.enabled 改为默认 true 的影响相对间接:若你依赖"ACP 关闭"状态来隔离某些 agent 路由逻辑,升级后这些路由会被自动激活,可能产生意外的权限扩散。

1.2 权限变更逻辑总览

flowchart TD
    A[用户升级至 2026.3.2] --> B{是否为新安装<br/>或重置了配置?}
    B -- 是 --> C[tools.profile 默认为 messaging]
    B -- 否 --> D[保留旧有配置<br/>工具权限基本不变]
    C --> E[编码与系统工具不可用]
    C --> F[acp.dispatch 默认启用]
    D --> H[检查 acp.dispatch 是否影响业务]
    E --> G[需手动修改配置文件恢复权限]
    G --> I[选择对应平台的恢复方案]
    I --> J[macOS 方案]
    I --> K[Windows 方案]
    H --> L[按需调整 acp.dispatch.enabled]

1.3 tools.profile 各值的工具覆盖范围

profile 值消息工具编码工具系统工具适用场景
messaging纯聊天机器人,最小权限
coding开发辅助,推荐大多数用户使用
system服务器管理、系统运维
coding+system完整还原 2026.3.1 及更早的默认行为

二、macOS 恢复步骤

第一步:找到配置文件

OpenClaw 在 macOS 上的配置文件默认路径为:

    ~/.openclaw/openclaw.json

打开 Finder,按下 Command + Shift + G,在弹出的路径栏中粘贴以下路径并回车:

    ~/.openclaw/

如果找不到该目录,可以通过终端确认其是否存在:

ls ~/.openclaw/

如果目录不存在,说明 OpenClaw 尚未在该用户下完成初始化,需先运行一次 openclaw gateway start 生成默认配置。

注意:~/.openclaw 是以点开头的隐藏目录,Finder 默认不显示。通过 Command + Shift + G 直接输入路径是最可靠的访问方式,或在终端中操作。


第二步:备份原始配置

在修改前务必备份,避免操作失误导致配置损坏:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak

第三步:用终端编辑配置

打开 Terminal(应用程序 → 实用工具 → 终端),选择适合自己的编辑方式:

# 方式一:nano(推荐新手,内置于 macOS)
nano ~/.openclaw/openclaw.json

# 方式二:VS Code(需已安装并配置 code 命令)
code ~/.openclaw/openclaw.json

# 方式三:vim(适合熟悉命令行的用户)
vim ~/.openclaw/openclaw.json

第四步:修改配置内容

在打开的配置文件中,找到 tools 段落(如果不存在则在 JSON 根对象中新增对应键值),修改如下:

{
  "tools": {
    "profile": "coding"
  },
  "acp": {
    "dispatch": {
      "enabled": false
    }
  }
}

使用 nano 时,编辑完成后按 Ctrl + O 写入,Ctrl + X 退出。

JSON 格式要求严格,修改后建议用 openclaw config validate 验证,或在保存前用 JSONLint 检查格式。

验证通过后,重启 Gateway 使配置生效

    openclaw gateway restart

如需查看详细的验证报告(JSON 格式)

    openclaw config validate --json

macOS 操作时序图

sequenceDiagram
    participant U as 用户
    participant F as Finder
    participant T as Terminal
    participant G as Gateway

    U->>F: Command+Shift+G 打开路径
    F-->>U: 定位到 OpenClaw 目录
    U->>T: cp config.yaml config.yaml.bak
    T-->>U: 备份完成
    U->>T: nano ~/.openclaw/openclaw.json
    T-->>U: 编辑器打开配置文件
    U->>T: 修改 tools.profile 为 coding
    U->>T: Ctrl+O 保存,Ctrl+X 退出
    U->>G: openclaw config validate
    G-->>U: 配置验证通过
    U->>G: openclaw gateway restart
    G-->>U: Gateway 重启,权限恢复

macOS 特有注意事项

从 2026.3.8 起,macOS 版本修复了一个重要问题:openclaw update 在 LaunchAgent 服务被禁用的状态下会卡住重启步骤。如果你的 Gateway 在更新后无法自动重启,请手动执行:

# 重新启用被禁用的 LaunchAgent 服务
launchctl enable gui/$(id -u)/ai.openclaw.gateway

# 然后正常重启
openclaw gateway restart

此外,2026.3.8 还修复了 macOS 从 System Settings 返回后权限状态不刷新的问题,升级后无需额外操作。


三、Windows 恢复步骤

第一步:找到配置文件

OpenClaw 在 Windows 上的配置文件路径与 macOS/Linux 一致,同样使用用户主目录下的隐藏目录:

    %USERPROFILE%\.openclaw\openclaw.json

按下 Win + R,在运行框中输入以下路径并回车,即可直接跳转:

    %USERPROFILE%\.openclaw\

实际完整路径通常为:

    C:\Users\<你的用户名>\.openclaw\openclaw.json

第二步:备份原始配置

在命令提示符或 PowerShell 中执行备份:

Copy-Item "$env:USERPROFILE\.openclaw\openclaw.json" `
          "$env:USERPROFILE\.openclaw\openclaw.json.bak"

第三步:打开配置文件进行编辑

方式一:资源管理器右键

openclaw.json 文件上右键,选择"用记事本打开"或"用 VS Code 打开"。

方式二:PowerShell 命令打开

Win + X,选择"Windows PowerShell(管理员)",执行:

# 用记事本打开
notepad "$env:USERPROFILE\.openclaw\openclaw.json"

# 或用 VS Code(需已安装)
code "$env:USERPROFILE\.openclaw\openclaw.json"

注意事项:

  • 保存时确认编码为 UTF-8,不要选择"UTF-8 with BOM",否则 Gateway 解析时可能报错
  • 不要使用 Word 或 WPS 打开 .json 文件,这类软件会插入不可见的格式字符,破坏 JSON 结构
  • JSON 格式严格,修改后可用 JSONLint 验证格式是否合法

第四步:修改配置内容

与 macOS 相同,找到 tools 部分并修改:

{
  "tools": {
    "profile": "coding"
  },
  "acp": {
    "dispatch": {
      "enabled": false
    }
  }
}

第五步:验证配置并重启 Gateway

在 PowerShell 中执行:

# 验证配置
openclaw config validate

# 重启 Gateway
openclaw gateway restart

也可以在系统托盘找到 OpenClaw 图标,右键选择 "Restart Gateway"。

Windows 操作时序图

sequenceDiagram
    participant U as 用户
    participant E as 资源管理器
    participant N as 记事本 / VS Code
    participant P as PowerShell
    participant G as Gateway

    U->>E: Win+R 输入 %USERPROFILE%\.openclaw
    E-->>U: 定位到 .openclaw 目录
    U->>P: Copy-Item openclaw.json openclaw.json.bak
    P-->>U: 备份完成
    U->>N: 右键打开 openclaw.json
    N-->>U: 编辑器打开配置文件
    U->>N: Ctrl+S 保存(确认 UTF-8 编码)
    U->>P: openclaw config validate
    P-->>U: 配置验证通过
    U->>G: openclaw gateway restart
    G-->>U: Gateway 重启,权限恢复

四、完整配置参考

以下是一份完整的、还原旧版权限行为的最小配置示例,涵盖 2026.3.2 和 2026.3.8 中的相关配置项:

{
  "tools": {
    "profile": "coding+system"
  },
  "acp": {
    "dispatch": {
      "enabled": false
    },
    "provenance": "off"
  },
  "skills": {
    "download": {
      "pinnedToolsRoot": true
    }
  }
}

如果只需恢复编码工具,coding 已经足够,不必使用 coding+systemcoding+system 适合需要完整还原 2026.3.1 之前默认行为的场景。


五、验证是否恢复成功

重启 Gateway 后,通过以下命令确认工具权限已经恢复:

# 验证配置文件并输出 JSON 格式详情
openclaw config validate --json

# 列出当前可用工具(应包含编码类工具)
openclaw tools list

# 查看版本及 commit 信息(2026.3.8 新增 commit hash 输出)
openclaw --version

修复前后状态对比

flowchart LR
    subgraph 修复前
        A1[tools.profile = messaging]
        A2[编码工具不可用]
        A3[系统工具不可用]
    end

    subgraph 修复后
        B1[tools.profile = coding]
        B2[编码工具可用]
        B3[消息工具可用]
    end

    A1 -->|修改配置并重启| B1

六、2026.3.8 新增安全问题与处置

2026.3.8 在安全方面有多项重要修复,部分问题若不处理可能导致权限绕过或路径注入。以下为需要关注的安全问题及对应的处置方法。

6.1 Skills 下载路径固定(重要)

问题描述: Skills 的下载安装流程在验证 per-skill 工具根目录(tools root)之前,未能在写入操作前固定路径绑定。攻击者若能在下载过程中重绑定 tools 的词法路径,可将下载内容写入预期目录之外的位置。

修复版本: 2026.3.8 修复内容: 下载归档写入前,现在会先固定已验证的 per-skill tools root,路径重绑定操作将被拦截并拒绝。

建议操作: 升级至 2026.3.8 即自动获得修复,无需额外配置。如果你在受限环境中管理 Skills 安装,建议在配置中显式声明:

{
  "skills": {
    "download": {
      "pinnedToolsRoot": true
    }
  }
}

6.2 system.run 脚本重写攻击防护

问题描述: system.run 工具在用户批准某个脚本后,未将脚本内容锁定到磁盘快照。若脚本文件在批准之后、执行之前被修改(TOCTOU 攻击),修改后的内容仍会被执行。

修复版本: 2026.3.8 修复内容: 批准的 bundeno run 脚本的操作数现在会被绑定到磁盘快照,批准后对脚本文件的任何修改都将被拒绝执行。

影响场景: 在多用户环境或共享工作区中,若脚本文件可被其他用户写入,此漏洞的风险较高。

建议操作: 升级至 2026.3.8,同时检查 system.run 相关脚本的文件权限,确保脚本文件仅由可信用户持有写入权限。


6.3 Browser / SSRF 防护增强

问题描述: 在 strict 浏览器导航模式下,私有网络中间重定向跳转未被拦截。攻击者可构造一个外部 URL 经由中间跳转进入私有网络地址,绕过 SSRF 防护。当远程 tab-open 路径无法检查重定向链时,旧版本采用"开放失败"(fail open)策略。

修复版本: 2026.3.8 修复内容: 严格导航流程现在会拦截私有网络的中间重定向跳转,并在无法检查重定向链时采用"关闭失败"(fail closed)策略。

建议操作: 若你使用 Browser/CDP 工具并启用了 strict 模式,升级至 2026.3.8 后行为会更保守——某些经过中间跳转的 URL 可能被拦截。如遇误拦截,需检查目标 URL 的重定向链是否经过私有网络地址。


6.4 MS Teams 群组权限扩散修复

问题描述: 当同时配置了 groupPolicy: "allowlist" 和 team/channel 路由 allowlist 时,路由匹配成功会绕过群组级别的发送者 allowlist 检查,导致该路由下所有发送者都能获得访问权限。

修复版本: 2026.3.8 修复内容: groupPolicy: "allowlist" 现在在路由匹配后仍强制执行发送者 allowlist 校验,路由匹配不再隐式放宽群组访问控制。

影响范围: 使用 MS Teams 集成并同时配置了 groupPolicy 和路由 allowlist 的部署。

建议操作: 升级后检查 MS Teams 的 allowlist 配置是否仍符合预期,确认没有因旧版行为依赖而产生的访问控制缺口。


6.5 安全问题汇总与风险等级

flowchart TD
    S[2026.3.8 安全修复]
    S --> A[Skills 路径固定<br/>防止下载写出边界]
    S --> B[system.run 脚本快照<br/>防止 TOCTOU 攻击]
    S --> C[Browser SSRF 加固<br/>私有网络重定向拦截]
    S --> D[MS Teams allowlist<br/>路由匹配不绕过群组权限]

    A --> A1[风险等级: 中<br/>影响: Skills 安装流程]
    B --> B1[风险等级: 高<br/>影响: 多用户共享工作区]
    C --> C1[风险等级: 高<br/>影响: 使用 strict 模式的浏览器集成]
    D --> D1[风险等级: 中<br/>影响: MS Teams 群组访问控制]
安全修复项风险等级是否需要额外配置主要影响场景
Skills 路径固定否(升级自动修复)使用 Skills 下载功能的部署
system.run 脚本快照否(升级自动修复)多用户环境、共享工作区
Browser SSRF 加固否(行为变更需验证)strict 模式浏览器导航
MS Teams allowlist建议重新审查配置MS Teams 群组集成

七、常见问题 FAQ

Q:我是老用户升级,也受影响吗? A:如果你没有重置配置,旧配置会保留,tools.profile 维持原值,工具权限基本不变。但建议检查 acp.dispatch.enabled 是否因默认值改变而影响了你的 ACP 业务流程。

Q:openclaw config validate 报错怎么办? A:检查 JSON 格式是否正确,常见错误是末尾多了逗号(trailing comma)或引号不匹配。可以将配置内容粘贴到 JSONLint 进行在线格式验证,根据错误提示修正对应行。

Q:修改后 Gateway 无法启动怎么办? A:运行 openclaw config validate --json 查看详细错误路径。若错误提示为 invalid-config,根据 JSON 中的 path 字段定位到具体配置项进行修正。2026.3.8 还修复了无效配置导致 Gateway 进程崩溃的问题,升级后此类情况会转为错误提示而非崩溃。

Q:coding+system 和旧版默认完全一样吗? A:是的,coding+system 包含旧版默认开放的全部工具集,等效于 2026.3.1 及更早版本的宽权限状态。

Q:2026.3.8 的安全修复是否会破坏现有的 Skills 使用? A:对正常使用不影响。Skills 路径固定修复仅拦截在下载过程中发生的异常路径重绑定行为,正常的 Skills 安装流程不受影响。

Q:升级至 2026.3.8 后 Browser strict 模式下有些 URL 无法访问,怎么处理? A:这是 SSRF 加固的预期行为变更。检查该 URL 的重定向链,如果中间经过了私有网络地址(如 192.168.x.x10.x.x.x127.x.x.x),这条访问路径会被拦截。需要调整目标服务的重定向配置,避免经过私有网络跳转。

Q:如何确认当前运行的版本是否包含 2026.3.8 的安全修复? A:运行 openclaw --version,2026.3.8 起会在版本号后附加短 commit hash(例如 2026.3.8+3caab92),可以据此确认构建版本。


参考来源:OpenClaw 2026.3.2 Release Notes、OpenClaw 2026.3.8 Release Notes 官方文档:docs.openclaw.ai Releases v2026.3.6文档:github.com/openclaw/op… Releases v2026.3.8文档:github.com/openclaw/op…