OpenClaw 24h 更新快报(2026-03-24):技能Slug验证、认证存储竞态、ClawHub插件安装
过去 24 小时,OpenClaw 主线仓库合并了大量变更,安全维度尤其密集。技能_slug 验证堵住了一个 Unicode 同形攻击(homograph attack)口子,认证存储修复了运行时快照覆盖更新凭证的竞态,ClawHub 全部插件安装则因一个硬编码的 API 版本号而全局失败——这三个问题均已在本次窗口内修复并合并。同期还有 LINE 渠道启动崩溃、Cron 时区参数失效、Control UI CSP 内联脚本策略加固等多项可靠性和安全改进。
Agent 安全:Slug 验证与 Shell 策略加固
PR #53206 堵住了一个技能slug 层面的 Unicode 同形攻击风险。OpenClaw 的 normalizeSlug 此前只过滤路径遍历字符(/、、..),但对任意 Unicode 字符来者不拒,导致攻击者可注册视觉上与合法 slug 完全一致的异形字符(如 "reаct" 中 "a" 为西里尔字母 U+0430),在 ClawHub 上实施钓鱼。修复将 slug 验证收紧为 ASCII 范围,从源头消除同形字符欺骗。此外,PR #53206 还补充了对遗留 ClawHub 技能更新的兼容处理(见 commit e530865),确保迁移过程不破坏已有配置。
独立提交 6c44b2e 为 channel-auth 命令增加了原型链污染(prototype-chain pollution)和控制字符注入防护,属于 CLI 层面的纵深安全加固。
在 Agent 执行层,PR #53134(agents 标签,涉及 codex/aardvark)修复了一个高危策略绕过:busybox/toybox 在解包时将内部 applet(sh)作为信任目标而非原始 wrapper 二进制,导致 allowlist/safe-bin 检查被绕过。修复在 ExecWrapperTrustPlan 中引入 policyArgv,确保解包前的原始可执行文件始终作为信任决策的依据。
认证存储竞态:写入被快照覆盖
PR #53211(agents/commands 标签)修复了一个影响网关实时运行的凭证竞态问题。当运行时 usage/cooldown 保存操作与磁盘上更新的凭证同时发生时,旧的运行时快照会覆盖新写入的磁盘数据,导致用户最新 token 被回滚。修复改为从磁盘重新加载最新凭证,同时确保 models auth paste-token 将 token 写入正确的 auth store 文件路径(通过传递解析后的 agentDir)。
同期独立提交 c8f4b85 进一步改进了 CLI 侧逻辑,让渠道认证能够自动识别并优先选择支持 login 能力的 auth 通道,降低用户手动配置门槛。
渠道集成:LINE 启动崩溃与 Prerelease 警告
PR #53221 修复了 LINE 渠道在启动时直接崩溃的问题。根因是 extensions/line/runtime-api.ts 与 src/plugin-sdk/line-runtime.ts 两处同时对同一批 15 个符号执行 export *,jiti 在 CJS 转换 barrel 文件时两次对同一属性执行 Object.defineProperty(第二次 configurable: false 导致抛出 TypeError)。由于 export * 不会填充 jiti 的 _exportNames 去重白名单,调整导出顺序并不能解决。修复对这 15 个符号全部改为命名预导出(named pre-exports),彻底消除冲突。
Cron 调度:时区参数在一次性任务中失效
PR #53224(cli/docs 标签)修复了 openclaw cron add --at '2026-03-23T23:00:00' --tz Europe/Oslo 将任务安排在 UTC 23:00 而非 Oslo 时间 23:00 的问题。--tz 参数对 --at 一次性任务此前被静默忽略。修复让 parseAt() 接受可选的 tz 参数,当输入为无时区偏移的裸 ISO 日期时间时,通过 Intl.DateTimeFormat 在指定 IANA 时区中解析;同时 cron-edit.ts 移除了原本禁止 --tz 与 --at 共用的守卫逻辑。带显式偏移量(+01:00 或 Z)的日期时间不受影响。
插件生态:ClawHub 安装全局失败与 Doctor 清理增强
PR #53157 是一个影响所有 ClawHub 插件安装的关键回归。OPENCLAW_PLUGIN_API_VERSION 被硬编码为 "1.2.0",而所有新版 ClawHub 插件已在 pluginApiRange 中声明为 ">=2026.3.22",导致 Matrix、MSTeams 等所有第三方渠道插件安装一律失败并报错"requires plugin API >=2026.3.22, but this OpenClaw runtime exposes 1.2.0"。修复将硬编码版本替换为运行时实际版本(通过已导入的 resolveRuntimeServiceVersion())。
PR #53187(commands 标签)增强了 openclaw doctor --fix 的能力:此前该命令无法清理插件卸载后残留在 plugins.allow 和 plugins.entries 中的过期引用,新版现在能检测、陈述性预警并在修复阶段主动移除这些孤立配置项,保持插件配置处于一致状态。
Control UI 安全加固与 Web UI 改进
独立提交 a96eded(feat(csp))为 Control UI 的 CSP 策略新增内联脚本哈希支持,这是面向浏览器侧的安全强化——在 CSP 严格模式下允许特定内联脚本执行而不必使用 unsafe-inline,缩小了 XSS 攻击面。该功能引用了 PR #53307 的内容。
独立提交 9dd0530(fix(ui))在配置差异面板中增加了敏感值脱敏处理,防止密钥、token 等敏感配置在 UI 展示时被意外暴露。
同期,PR #53238(web-ui/gateway 标签)将整个 UI 的圆角半径统一为共享的 CSS 变量 token,消除了此前不同组件使用不同硬编码半径值导致的视觉不一致问题。
其他值得注意的独立提交
7f37382(refactor: separate exec policy and execution targets)将执行策略判定与实际执行目标分离,是执行子系统的重大架构重构;a3f2fbf(refactor: harden extension runtime-api seams)加固了扩展 runtime-API 的边界;85ed1a8(refactor: clean up ClawHub compatibility validation)清理了 ClawHub 兼容性验证逻辑。
整体来看,本次更新窗口以安全修复为主线,从 Agent 技能slug、Shell 策略绕过、认证存储竞态到 CSP 与 CLI 防护形成了多层防御;渠道稳定性(LINE 启动崩溃)和调度可靠性(Cron 时区)也有实质改进;插件生态的关键安装阻塞问题得到解除。
常用链接
- OpenClaw 项目地址
- OpenClaw Releases


评论