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 下载功能的部署
目录
- 问题根因分析
- [macOS 恢复步骤](#macOS 恢复步骤 "#%E4%BA%8Cmacos-%E6%81%A2%E5%A4%8D%E6%AD%A5%E9%AA%A4")
- [Windows 恢复步骤](#Windows 恢复步骤 "#%E4%B8%89windows-%E6%81%A2%E5%A4%8D%E6%AD%A5%E9%AA%A4")
- 完整配置参考
- 验证是否恢复成功
- [2026.3.8 新增安全问题](#2026.3.8 新增安全问题 "#%E5%85%AD20263-8-%E6%96%B0%E5%A2%9E%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98%E4%B8%8E%E5%A4%84%E7%BD%AE")
- [常见问题 FAQ](#常见问题 FAQ "#%E4%B8%83%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98-faq")
一、问题根因分析
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 权限变更逻辑总览
或重置了配置?} B -- 是 --> C[tools.profile 默认为 messaging] B -- 否 --> D[保留旧有配置
工具权限基本不变] 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 上的配置文件默认路径为:
bash
~/.openclaw/openclaw.json
打开 Finder,按下 Command + Shift + G,在弹出的路径栏中粘贴以下路径并回车:
bash
~/.openclaw/
如果找不到该目录,可以通过终端确认其是否存在:
bash
ls ~/.openclaw/
如果目录不存在,说明 OpenClaw 尚未在该用户下完成初始化,需先运行一次 openclaw gateway start 生成默认配置。
注意:
~/.openclaw是以点开头的隐藏目录,Finder 默认不显示。通过Command + Shift + G直接输入路径是最可靠的访问方式,或在终端中操作。
第二步:备份原始配置
在修改前务必备份,避免操作失误导致配置损坏:
bash
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
第三步:用终端编辑配置
打开 Terminal(应用程序 → 实用工具 → 终端),选择适合自己的编辑方式:
bash
# 方式一:nano(推荐新手,内置于 macOS)
nano ~/.openclaw/openclaw.json
# 方式二:VS Code(需已安装并配置 code 命令)
code ~/.openclaw/openclaw.json
# 方式三:vim(适合熟悉命令行的用户)
vim ~/.openclaw/openclaw.json
第四步:修改配置内容
在打开的配置文件中,找到 tools 段落(如果不存在则在 JSON 根对象中新增对应键值),修改如下:
json
{
"tools": {
"profile": "coding"
},
"acp": {
"dispatch": {
"enabled": false
}
}
}
使用 nano 时,编辑完成后按 Ctrl + O 写入,Ctrl + X 退出。
JSON 格式要求严格,修改后建议用
openclaw config validate验证,或在保存前用 JSONLint 检查格式。
验证通过后,重启 Gateway 使配置生效
bash
openclaw gateway restart
如需查看详细的验证报告(JSON 格式)
bash
openclaw config validate --json
macOS 操作时序图
macOS 特有注意事项
从 2026.3.8 起,macOS 版本修复了一个重要问题:openclaw update 在 LaunchAgent 服务被禁用的状态下会卡住重启步骤。如果你的 Gateway 在更新后无法自动重启,请手动执行:
bash
# 重新启用被禁用的 LaunchAgent 服务
launchctl enable gui/$(id -u)/ai.openclaw.gateway
# 然后正常重启
openclaw gateway restart
此外,2026.3.8 还修复了 macOS 从 System Settings 返回后权限状态不刷新的问题,升级后无需额外操作。
三、Windows 恢复步骤
第一步:找到配置文件
OpenClaw 在 Windows 上的配置文件路径与 macOS/Linux 一致,同样使用用户主目录下的隐藏目录:
bash
%USERPROFILE%\.openclaw\openclaw.json
按下 Win + R,在运行框中输入以下路径并回车,即可直接跳转:
bash
%USERPROFILE%\.openclaw\
实际完整路径通常为:
bash
C:\Users\<你的用户名>\.openclaw\openclaw.json
第二步:备份原始配置
在命令提示符或 PowerShell 中执行备份:
powershell
Copy-Item "$env:USERPROFILE\.openclaw\openclaw.json" `
"$env:USERPROFILE\.openclaw\openclaw.json.bak"
第三步:打开配置文件进行编辑
方式一:资源管理器右键
在 openclaw.json 文件上右键,选择"用记事本打开"或"用 VS Code 打开"。
方式二:PowerShell 命令打开
按 Win + X,选择"Windows PowerShell(管理员)",执行:
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 部分并修改:
json
{
"tools": {
"profile": "coding"
},
"acp": {
"dispatch": {
"enabled": false
}
}
}
第五步:验证配置并重启 Gateway
在 PowerShell 中执行:
powershell
# 验证配置
openclaw config validate
# 重启 Gateway
openclaw gateway restart
也可以在系统托盘找到 OpenClaw 图标,右键选择 "Restart Gateway"。
Windows 操作时序图
四、完整配置参考
以下是一份完整的、还原旧版权限行为的最小配置示例,涵盖 2026.3.2 和 2026.3.8 中的相关配置项:
json
{
"tools": {
"profile": "coding+system"
},
"acp": {
"dispatch": {
"enabled": false
},
"provenance": "off"
},
"skills": {
"download": {
"pinnedToolsRoot": true
}
}
}
如果只需恢复编码工具,coding 已经足够,不必使用 coding+system。coding+system 适合需要完整还原 2026.3.1 之前默认行为的场景。
五、验证是否恢复成功
重启 Gateway 后,通过以下命令确认工具权限已经恢复:
bash
# 验证配置文件并输出 JSON 格式详情
openclaw config validate --json
# 列出当前可用工具(应包含编码类工具)
openclaw tools list
# 查看版本及 commit 信息(2026.3.8 新增 commit hash 输出)
openclaw --version
修复前后状态对比
六、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 安装,建议在配置中显式声明:
json
{
"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 安全问题汇总与风险等级
防止下载写出边界] S --> B[system.run 脚本快照
防止 TOCTOU 攻击] S --> C[Browser SSRF 加固
私有网络重定向拦截] S --> D[MS Teams allowlist
路由匹配不绕过群组权限] A --> A1[风险等级: 中
影响: Skills 安装流程] B --> B1[风险等级: 高
影响: 多用户共享工作区] C --> C1[风险等级: 高
影响: 使用 strict 模式的浏览器集成] D --> D1[风险等级: 中
影响: 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...