OpenClaw 2026.3.2 — 2026.3.8 权限变更与安全加固
作者:吴佳浩
撰稿时间:2026-3-9
测试版本:OpenClaw 2026.3.2 — 2026.3.8
适用版本: OpenClaw 2026.3.2 — 2026.3.8 问题现象: 升级后大量默认操作权限消失,编码 / 系统工具不可用 影响范围: 新安装用户、重置过配置的用户,以及依赖 Skills 下载功能的部署
目录
一、问题根因分析
1.1 版本 2026.3.2 的两项破坏性变更
2026.3.2 引入了两项 Breaking Changes,直接导致默认权限收窄。老用户如果配置完整则影响有限,但新安装或配置重置的用户会立即感受到权限缺失。
| 配置项 | 旧版默认值 | 2026.3.2 新默认值 | 实际影响 |
|---|---|---|---|
tools.profile | coding / system | messaging | 编码与系统工具默认关闭 |
acp.dispatch.enabled | false | true | ACP 路由在未显式配置时自动启用 |
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+system。coding+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
修复内容: 批准的 bun 和 deno 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.x、10.x.x.x、127.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…