
OpenClaw 24h 更新快报(2026-03-25):沙箱安全、Agent 可靠性、飞书消息修复
过去 24 小时,OpenClaw 主仓库合并了约 30 个 PR,同时有大量独立提交落地。安全层面是本周期最突出的主题:飞书文件读取路径穿越、媒体层目录遍历、认证配置环境变量注入等多个攻击面同时被收紧。Agent 侧的重点则放在大上下文下的超时死亡螺旋和 429 限流的系统性改善上,WhatsApp LID 识别问题也终于修好。以下按主题梳理核心变化。
安全与沙箱加固
本批次安全修复覆盖面广,且多项直接针对已被实际利用风险较高的路径。
PR #54693 修复了飞书频道在处理 docx 上传文件读取时未正确应用 localRoots 沙箱限制的问题:攻击者上传包含路径穿越路径的特制文档,可能导致沙箱内进程读取沙箱边界外的文件。受影响范围为使用飞书频道且启用了文档解析功能的部署。此修复由 drobison00 提交,属于 size:S 的精准收敛。
PR #54631 处理了另一个高风险路径:CLI 和 bootstrap 的 dotenv 加载器此前会直接将从当前工作目录读取的 .env 条目写入 process.env,导致一个不可信的仓库本地 .env 文件可以在配置加载之前就影响 OpenClaw 启动行为。现在这类 CWD 来源的条目会先经过可信度过滤。涉及标签:cli、maintainer。
PR #54627 修复了守护进程安装路径下 auth-profile 环境变量引用未经过主机环境变量安全过滤的问题。恶意认证配置现在无法通过 NODE_OPTIONS 或 GIT_ASKPASS 等危险变量注入启动流程。PR #54642 则封堵了媒体解析层中 isLikelyLocalPath() 对路径穿越符(../)和 home 目录符(~)的错误放行,以及 allowBareFilename 路径的第二条绕过通道。
PR #54618 补上了共享浏览器配置变更分类器的一个缺口:POST /reset-profile 此前后被遗漏,仍可被低权限浏览器请求路径触达,现已明确拦截。PR #54492 修复了沙箱工具策略中 alsoAllow 配置被实际解析逻辑忽略的回归,并允许显式 re-allow 从内置默认拒绝列表中恢复特定工具。
同周期还有一条独立提交 1b3a124 封堵了媒体 URL 和 fileUrl 别名对沙箱媒体根目录的绕过路径,与上述修复属于同一攻击面家族。
Agent 可靠性:Compaction 与 Rate Limit
本周期 Agent 可靠性的改进相当系统化,多个 PR 共同解决了大上下文场景下的死亡螺旋和全局共享认证配置的连锁故障问题。
PR #46417 针对 LLM 超时时的上下文膨胀问题:当模型响应超时且上下文使用率偏高(超过上下文窗口 65%)时,系统此前会以同样过大的上下文直接重试,导致超时→等大上下文→再次超时的死循环。新逻辑在超时后主动触发 compaction,缩小上下文体积后再重试。PR #49479 则补上了 auto-compaction 在 usage 数据陈旧时无法在下一轮对话前触发的漏洞,两个 PR 共同构成上下文管理的重要升级。
PR #49834 重新设计了对等式退避算法,并将作用域从全局收窄到单模型:同一 auth profile 上共享 Copilot 等模型的其他用户不会再因为某一路的限流而被集体拖入 1 小时冷却。同时增加了面向用户的限流提示文本。PR #50930 修复了 429 响应在中间轮次出现时静默无回复、以及上下文引擎注册失败的问题。PR #45493 修复合并超时导致 sessions.json 中 compactionCount 不同步的竞态。
手动 compaction 体验也有改善:PR #51072 让触发取消的原因现在会明确展示给用户,/compact 跳过场景不再伪装成失败。
渠道集成:飞书与 WhatsApp
飞书频道本周期有三个独立问题被修复,整体质量明显提升。
PR #52809 是安全关键修复:此前飞书频道对所有入站消息使用 Date.now()(服务器处理时刻)作为时间戳,而非用户实际发送时刻(event.message.create_time),网络延迟或离线重试场景下两者差异可达数分钟,导致基于时间的 agent 动作定位严重偏离。另一个 WebSocket 相关问题由 PR #52844 修复:停止 Feishu monitor 时只清了内存状态,没有调用 wsClient.close(),留下"幽灵连接"继续接收事件并造成资源泄漏。
WhatsApp 侧本周期修好了一个长期问题:PR #53867 让 bot 在群组中回复用户消息终于能正确触发响应。根本原因是 WhatsApp LID(Linked Identity)系统使用 xxxxx@lid 格式标识符,而 OpenClaw 此前只识别 [email protected] 电话号码格式。相关独立提交 770a5ee 等完成了凭证读取从同步到异步的迁移,以适配新格式。
iMessage 端也有修复:PR #39512 去掉了出站消息中错误暴露的 [[reply_to:]] 标签。Telegram 侧则修了自产消息的循环通知问题(PR #54530)和管理员范围写入的持久化校验问题(PR #54561)。
插件与调度基础设施
PR #50444 为插件系统新增了 before-dispatch 钩子,位于路由和策略决策已敲定、但模型/提供商调用尚未发出之前。这为需要在此窗口插入逻辑的插件提供了规范接入点,cron 服务此前用到的 heartbeat 投递目标覆盖模式也由此正式暴露给外部插件。
PR #54487 为 MiniMax 扩展新增了图片生成提供商,并将模型目录裁剪为仅 M2.7,同时修正了 TTS 语音提供商的 OAuth 凭证解析逻辑。
开发者体验与构建质量
日志时间戳格式的统一是本周期一个小而实在的改进:PR #38904 让控制台"漂亮模式"和紧凑/JSON/文件输出采用一致的格式,事件排查时同一时刻不再有两套时间表示。PR #54118 为 Discord 原生命令部署失败日志从数字索引升级为可读命令名,大幅改善了调试体验。
独立提交 ea08f2e 确认 OpenClaw 兼容 Node 22.14,39ad514 新增了 Open WebUI Docker 冒烟测试。PR #54283 把 plugin-sdk 导出检查纳入 release:check 流程,外部插件引用 openclaw/plugin-sdk/* 子路径时的加载错误可在发布前被捕获。
OpenShell 用户注意:PR #54657 已将 hooks/ 目录排除在镜像同步之外,防止远程沙箱内容被回写进宿主机的可信 hook 路径。
本周期共合并约 30 个 PR,涵盖安全、Agent 可靠性、多渠道集成和开发者体验等多个维度。沙箱和认证相关的多项收紧是本次最值得关注的重点,建议所有使用飞书、WhatsApp 或沙箱功能的部署优先评估并尽快升级。


评论