本次总结围绕版本基础信息、核心新增功能、全模块修复程序、全方位安全加固、核心模块性能优化、贡献者信息六大维度展开,关键信息加粗标注,核心数字与问题编号清晰呈现。
一、版本基础信息
-
发布核心:openclaw v2026.2.14由 steipete 于2026 年 2 月 14 日发布,版本标识为b5ab92e; -
迭代更新:自版本发布后,项目主分支已完成37 次更新提交; -
开发贡献:由 xqliu、vincentkoc 牵头,共计56 位开发者参与本版本开发。
二、核心新增功能
本版本针对主流社交平台、沙盒、调试能力完成功能新增,均为社区贡献者提交,关键需求编号如下表:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
三、全模块修复程序
修复程序覆盖CLI / 插件、主流社交平台、Cron 任务调度、TUI 终端交互、智能体 / Agents、内存 / QMD、网关七大核心模块,累计修复超 80 项问题,核心修复点如下:
- CLI / 插件
修复消息发送后阻塞问题,确保成功发送后正常退出(#16491);在消息退出全路径运行 gateway_stop 钩子,实现 CLI 资源清理(#16580);修复顶层维护命令解析问题,让 doctor/dashboard 等命令正常生效。 - 主流社交平台
-
WhatsApp:账户级 dmPolicy 优先于渠道默认设置,优化私信接收规则(#10082); -
Telegram:native 为 false 时排除插件命令的菜单注册,保留斜杠处理程序调用(#15132);设置 webhook 回调超时为 10s,避免 500 错误和重试风暴(#16763); -
LINE:返回 200 OK 响应开发者控制台验证请求,无需 X-Line-Signature(#16582); -
Discord:优化入站消息公会 ID 记录,修复缓存未命中显示异常;将空频道配置映射为允许列表,兼容 groupPolicy: "open" 配置(#16714); -
信号:归一化过程保留组 ID 大小写,修复 “未找到组” 失败问题(#16748)。 - Cron 任务调度
修复 3 类核心问题,包括直接输出纯文本内容让收件人获取完整输出(#16360)、发送消息时保留智能体名称和图标(#16242)、修复 nextRunAtMs 更新异常 / 过期任务跳过 / 重启循环等调度计算问题(#16156/#15750/#16694)。 - TUI 终端交互
-
完成 10 项 +*修复,核心包括解析 gateway.bind 模式获取目标 URL(#16299)、支持 --session <key>会话隔离(#16575)、优化流式回复保留 / 长文本渲染 / ANSI 高亮(#10704/#6958)、清理二进制类历史文本防止启动崩溃(#13007)。 - 智能体 / Agents
优化媒体发送规则,工具结果媒体不依赖冗长级别(#11735);强化工作区图像路径解析,防止错误拒绝(#15541/#16722);为 session.compact () 添加安全超时,释放阻塞的会话通道(#16331);避免 Ollama 模型<final>标签强制化,防止输出被抑制(#16191)。 - 内存 / QMD
修复解析韧性、查询排名、集合元数据损坏等问题(#11302/#16740/#12919);优化文件读取逻辑,避免请求窗口时读取完整 markdown 文件;同步时跳过重写未更改文件,减少磁盘磨损。 - 网关
保留失败公告的排队项目,实现重试排放(#16729);会话重置前终止嵌入运行并清理工作(#16576);清理 agentRunSeq 跟踪,防止无界序列映射增长(#6036)。
四、全方位安全加固
本版本为安全优化重点版本,覆盖多平台安全、媒体安全、沙箱 / 智能体安全、网关 / 网络安全、系统级安全五大维度,累计完成 40 项 + 安全加固,核心举措如下:
- 各社交平台安全
Telegram 要求数字化 ID 白名单,自动解析 @用户名并发出遗留配置警告;Slack 对 DM 斜杠命令强制授权验证;BlueBubbles / 飞书 / Google Chat 添加媒体防 SSRF、webhook 路由防模糊匹配;Zalo/Nostr 限制跨域配置、要求回环源。 - 媒体安全
默认允许 OpenClaw 工作区 / 沙箱根的本地媒体读取;加强 Base64 解码限制,拒绝超大尺寸输入;流式获取 URL 媒体,防止内存耗尽;对 Discord / 飞书语音消息媒体添加 SSRF + 本地根检查。 - 沙箱 / 智能体安全
沙箱文件工具支持绑定挂载并实施只读语义(#16379);非沙箱模式下限制 apply_patch 路径边界,防止目录遍历;macOS 下写入钥匙串凭证时防 shell 注入(#15924);限制 CLI 进程清理范围为自有子 PID,避免误杀无关进程。 - 网关 / 网络安全
限制 gatewayUrl 覆盖为回环地址 / 配置的远程地址;修复 IPv6 映射 IPv4 的 SSRF 防护绕过问题;拒绝过大的 base64 聊天附件,避免内存分配溢出;加固浏览器控制文件上传 / 下载,防止路径遍历。 - 系统级安全
:Windows 产生子进程时避免调用 shell,防 cmd 元字符注入;强制执行归档提取的条目 / 大小限制,防止资源耗尽;限制钩子变换模块路径为~/.openclaw/hooks/transforms,防止路径遍历;加固技能下载的归档提取,防止跨目录写入。
五、核心模块性能优化
围绕内存管理、插件、技能、工作区完成针对性优化,核心解决无界内存增长、文件描述符耗尽、虚假警告等问题:
- 记忆管理
对 ABORT_MEMORY、Slack 线程缓存、目录缓存等添加 TTL 修剪 + 最大大小限制,驱逐最旧条目;修剪诊断会话状态条目,限制追踪数量,防止长时间运行的网关内存溢出。 - 插件
抑制不同路径下相同扩展的虚假重复 ID 警告,仅对真实重复插件发出提示(#16222)。 - 技能
仅在刷新技能快照时读取 SKILL.md,避免大型数据树中文件描述符耗尽(#11325);从远程技能缓存中移除未连接节点,清理过时元数据(#6760)。 - 智能体工作区
持久化引导入职状态,支持部分初始化工作区的恢复(#16457);核心文件填充时自动创建 BOOTSTRAP.md,且入职完成后保持该文件为一次性状态。
六、贡献者信息
本版本为社区协作开发成果,核心贡献者为xqliu、vincentkoc,另有54 位开发者参与功能开发、问题修复、安全优化等工作,覆盖功能开发、测试、安全审计等多个环节。
版本关键问题Q&A
问题 1(版本迭代核心方向):openclaw v2026.2.14 的核心迭代方向有哪些,各方向的核心落地动作是什么?
答案:该版本核心有三大迭代方向,一是功能新增,针对 Telegram/Discord/Slack 等主流平台新增投票发送、DM 访问控制、审批提示多目标等实用功能,为沙盒新增浏览器容器独立配置;二是程序修复,覆盖 CLI / 插件、Cron、TUI、智能体、网关等全模块,解决了消息阻塞、任务调度异常、终端渲染崩溃、路径解析错误等超 80 项问题;三是安全加固,作为本次版本重点,完成多平台权限控制、媒体防泄露、沙箱路径边界、网关 SSRF 防护等 40 项 + 安全优化,同时针对内存管理、插件、技能等模块完成性能优化,解决无界内存增长等核心问题。
问题 2(安全优化重点):本次版本在安全加固方面,针对 Telegram 做了哪些关键的安全举措,解决了什么核心风险?
答案:针对 Telegram 的安全加固有三项核心举措,一是白名单授权优化,要求使用数字化的发送者 ID 进行白名单授权,拒绝 @用户名主体,可通过 openclaw doctor --fix 自动解析 @用户名为 ID,还会在安全审核中对含用户名的遗留配置发出警告,解决了用户名易伪造导致的权限绕过风险;二是webhook 身份验证,当 webhookSecret 缺失或为空时直接拒绝 Telegram webhook 启动,防止未经身份验证的 webhook 请求伪造风险;三是webhook 超时处理,将 webhook 回调超时设置为 10s(onTimeout: "return"),避免长时间运行的更新处理产生 500 错误和重试风暴,解决了 webhook 服务被重试请求压垮的可用性风险。
问题 3(高频修复模块):TUI 作为本次版本修复的高频模块,核心解决了哪些终端交互的问题,带来了哪些体验提升?
答案:TUI 模块完成了 10 项 + 核心修复,解决的核心问题及体验提升主要包括:一是会话连接问题,从 gateway.bind 模式解析本地网关目标 URL,替代硬编码的localhost,实现非回环网关的正常连接;二是会话隔离问题,明确支持 --session <key>参数,即使 session.scope 为全局,命名会话也不会合并到共享历史,实现会话数据隔离;三是渲染显示问题,优化可搜索选择列表的会话名称显示、ANSI 高亮宽度,清理二进制类历史文本,防止终端启动崩溃,同时对浅色主题适配助手主体文本渲染,提升可读性;四是流式回复问题,保留飞行中流媒体的回复,防止流媒体中间清除运行 / 重新加载历史,同时保持预工具流式文本可见,让终端的流式交互更流畅。
------------------------
openclaw 2026.2.14最新版本
steipete发布于2026年2月14日
·自该版本发布以来,主分支已提交37次更新。
v2026.2.14 版本标识 b5ab92e
变化
lTelegram:添加投票发送通过openclaw 消息投票(持续时间秒,静默发送,匿名控制)。(#16209) 感谢@robbyczgw-cla。
lSlack/Discord:添加dmPolicy + allowFrom 配置别名以进行DM 访问控制;遗留的dm.policy + dm.allowFrom 键依然支持,openclaw doctor --fix 可以迁移它们。
lDiscord:允许执行审批提示目标为频道或同时为私信+频道,通过channels.discord.execApprovals.target。(#16051) 感谢@leonnardo。
l沙盒:添加sandbox.browser.binds 以单独配置浏览器容器的绑定挂载,与执行容器分开。(#16230) 感谢@seheepeak。
lDiscord:添加调试日志以改善消息路由决策的调试追踪。(#16202) 感谢@jayleekr。
修复程序
lCLI/插件:确保在通过插件支持的通道成功发送openclaw消息后,发送操作退出,以免一次性发送在此过程中阻塞。(#16491) 感谢@yinghaosang。
lCLI/Plugins: 在openclaw消息退出(成功和失败路径)之前运行注册的插件gateway_stop钩子,以便插件支持的通道可以清理一次性CLI资源。(#16580) 感谢@gumadeiras。
lWhatsApp:每个账户的dmPolicy 优先于覆盖(账户级设置现在优先于渠道默认设置,用于接收的私信)。(#10082) 感谢@mcaxtr。
lTelegram: 当channels.telegram.commands.native 为false 时,从setMyCommands 菜单注册中排除插件命令,同时保持插件斜杠处理程序可调用。(#15132) 感谢@Glucksberg。
lLINE:返回200 OK以供开发者控制台“验证”请求({"events":[]}),无需X-Line-Signature,同时对真实交付仍需签名。(#16582)感谢@arosstale。
lCron: 直接输出纯文本内容,当delivery.to 设置时,cron 收件人可以获得完整输出而不是摘要。(#16360) 感谢@thewilloftheshadow。
lCron/Slack:在cron 任务发送出站消息时保持智能体身份(名称和图标)。(#16242) 感谢@robbyczgw-cla。
l媒体:在加载出站媒体时,接受带有MEDIA:- 前缀的路径(宽松的空格),以防止工具返回本地媒体路径时出现ENOENT。(#13107) 感谢@mcaxtr。
l智能体:将工具结果媒体(截图、图像、音频)发送到频道,不考虑冗长级别。(#11735) 感谢@strelov1。
l智能体/图像工具:通过将活动工作区目录包含在本地媒体允许列表中,允许工作区本地图像路径,并在图像加载器中信任沙箱验证的路径,以防止错误的“未在允许目录下”拒绝。(#15541)
lAgents/Image 工具:将有效的工作区根传播到工具连接中,以便在未显式指定workspaceDir 时默认接受工作区本地的镜像路径。(#16722)
lBlueBubbles:在群聊信封中包含发送者身份,并将干净的消息文本传递给智能体提示,符合iMessage/Signal格式。(#16210) 感谢@zerone0x。
lCLI:修复延迟的核心命令注册,使顶层维护命令(doctor,dashboard,reset,uninstall)正确解析,而不是暴露一个无功能的维护占位命令。
lCLI/Dashboard: 当gateway.bind=lan 时,生成本地主机仪表板URL 以满足浏览器安全上下文要求,同时保留非LAN 绑定行为。(#16434) 感谢@BinHPdev。
lTUI/Gateway:从gateway.bind模式(tailnet/lan)解析本地网关目标URL,而不是硬编码的localhost,以便在网关为非回环时openclaw tui可以连接。(#16299)感谢@cortexuvula。
lTUI:在openclaw tui中明确honor --session <key>,即使session.scope是全局的,因此命名会话不再合并到共享全局历史中。(#16575)感谢@cinqu。
lTUI:在可搜索选择列表中使用可用的终端宽度显示会话名称。(#16238) 感谢@robbyczgw-cla。
lTUI:重构可搜索选择列表描述布局并增加ANSI高亮宽度边界的回归覆盖。
lTUI:在不同的运行同时完成时保留飞行中流媒体的回复(避免在流媒体中间清除活动运行或重新加载历史)。(#10704) 感谢@axschr73。
lTUI: 在后续工具边界增量暂时省略早期文本块时,保持预工具流式文本可见。(#6958) 感谢@KrisKind75。
lTUI:对ANSI/控制字符繁重的历史文本进行清理,删除类似二进制的行,并在渲染之前拆分病态的长不间断标记,以防止在二进制附件历史记录上启动崩溃。(#13007)感谢@wilkinspoe。
lTUI: 通过对适度长的未断裂标记进行分块,并添加快速路径消毒保护,以降低正常文本的开销,从而增强狭窄终端的渲染时消毒器。(#5355) 感谢@tingxueren。
lTUI: 在终端默认前景中渲染助手主体文本(而不是固定的浅色ANSI颜色),以便在如Solarized Light这样的浅色主题上保持可读性对比。(#16750) 感谢@paymog。
lTUI/Hooks:通过sessions.reset 传递明确的重置原因(新vs 重置),并为网关触发的重置发出内部命令钩子,以便在TUI/webchat 中触发/new 钩子工作流。
lCron:通过使用维护重计算语义,防止cron列表/cron状态在无声中跳过过期的定期任务。(#16156) 感谢@zerone0x。
lCron:修复更新作业的缺失/损坏nextRunAtMs,而在cron 更新期间不对不相关的到期作业进行全局重新计算。(#15750)
lCron:在启动时跳过对因运行中断而错过的作业的重放(过期的runningAtMs 标记),防止自重启作业(如更新任务)出现重启循环。(#16694)感谢@sbmilburn。
lDiscord:在记录入站消息时更倾向于使用网关公会ID,以便缓存未命中的公会不会显示为guild=dm。感谢@thewilloftheshadow。
lDiscord: 将空的每个公会频道:{} 配置映射视为没有频道的允许列表(不是拒绝所有),因此groupPolicy: "open" 公会在没有明确频道条目的情况下继续接收消息。(#16714)感谢@xqliu。
lModels/CLI: guard models status string trimming paths to prevent crashes from malformed non-string config values. (#16395) Thanks @BinHPdev.
l网关/子智能体:在传递错误时保留排队的公告项目和摘要状态,重试失败的公告排放,避免在超时/失败时丢弃未发送的公告。(#16729) 感谢@Clawdette-Workspace。
lGateway/Sessions: 在sessions.reset 之前终止活动的嵌入运行并清除排队的会话工作,如果运行未能及时停止则返回不可用。(#16576) 感谢@Grynn。
l会话/智能体:通过保留显式存储根并为正确的智能体会话目录添加安全的绝对路径后备,强化不匹配智能体上下文的转录路径解析。(#16288) 感谢@robbyczgw-cla。
l智能体:在嵌入式session.compact() 周围添加安全超时,以确保停滞的压缩运行得以完成并释放被阻塞的会话通道。(#16331) 感谢@BinHPdev。
l智能体:保持未解决的工具变异失败在同一操作重试成功之前可见,将变异错误的显现范围扩展到变异调用(包括 session_status 模型更改),并在出站回复中去重重复的失败警告。(#16131)感谢 @Swader。
l智能体/过程/引导:保留不限制的过程日志偏移量分页(默认尾部仅在省略偏移量和限制时适用),并在注入的引导内容(包括标记)中强制执行严格的bootstrapTotalMaxChars预算,当剩余预算过小时跳过额外的注入。(#16539)感谢@CharlieGreenman。
l智能体/工作区:持久化引导入职状态,以便部分初始化的工作区在缺失BOOTSTRAP.md 时能够恢复,而已完成的入职则即使在运行时文件后续被重新创建时仍会保持BOOTSTRAP 被删除。感谢@gumadeiras。
lAgents/Workspace:在部分初始化的工作区中,当核心工作区文件被填充时创建BOOTSTRAP.md,同时在删除入职后保持BOOTSTRAP 为一次性。(#16457) 感谢@robbyczgw-cla。
l智能体:在压缩期间,将外部超时中止与内部超时相同分类,从而防止不必要的身份验证配置文件轮换,并保留压缩超时快照回退行为。(#9855)感谢@mverrilli。
l智能体:将空流提供者故障(请求在未发送任何块的情况下结束)视为超时类故障转移信号,启用认证配置文件轮换/回退,并显示友好的超时消息,而不是原始提供者错误。(#10210) 感谢@zenchantlive。
l智能体:将读取工具文件路径参数视为在工具启动诊断中有效,以避免在使用别名参数时出现错误的“读取工具时未提供路径”警告。(#16717)感谢@Stache73。
lOllama/Agents: 避免强制对Ollama模型进行<final>标签的强制执行,这可能会将所有输出抑制为(no output)。(#16191) 感谢@Glucksberg。
l插件:在通过多个路径(config/workspace/global 与捆绑版本)发现相同扩展时,抑制虚假的重复插件ID 警告,同时仍对真实重复项发出警告。(#16222) 感谢 @shadril238。
l技能:仅在刷新技能快照时查看SKILL.md,以避免在大型数据树中出现文件描述符耗尽的问题。(#11325)感谢@household-bard。
lMemory/QMD:通过跳过QMD 引导更新/嵌入副作用,使内存状态变为只读,适用于仅状态管理器检查。
lMemory/QMD:在内置回退初始化失败时(例如缺少嵌入API密钥),保持原始QMD故障,而不是将其替换为回退初始化错误。
l内存/内置:通过从持久化索引元数据中派生仅状态管理器的脏状态,而不是使用进程启动默认值,保持内存状态脏报告在调用之间稳定。(#10863) 感谢@BarryYangi。
l内存/QMD:限制QMD 命令输出缓冲,以防止由于病态qmd 命令输出导致的内存耗尽。
Memory/QMD:每次请求解析qmd 范围键,以避免在范围检查中重复解析。
Memory/QMD:在回忆准确性和索引效率更好的情况下,首先使用精确的文档ID匹配查询QMD索引,然后再回退到前缀查找。
lMemory/QMD: 将结果限制传递给search/vsearch命令,以便QMD可以更早地限制结果。
lMemory/QMD: 避免在QMD读取时请求from/lines窗口时读取完整的markdown文件。
记忆/QMD:在同步期间跳过重写未更改的会话导出Markdown文件,以减少磁盘磨损。
lMemory/QMD: 使QMD结果的JSON解析对嘈杂的命令输出具有更强的韧性,通过从嘈杂的stdout中提取第一个JSON数组。
lMemory/QMD: 在qmd JSON解析中,将带前缀的“未找到结果”标记输出视为空结果集。(#11302) 感谢@blazerui。
lMemory/QMD: 通过对每个管理集合运行一个qmd 查询-c <collection>,并按最佳得分合并,避免多集合查询排名腐败(也用于搜索/vsearch 后备查询)。(#16740) 感谢@volarian-vai。
lMemory/QMD: 检测到空字节 ENOTDIR 更新失败,重建托管集合一次,并重试更新以自我修复损坏的集合元数据。(#12919) 感谢 @jorgejhms。
lMemory/QMD/Security:为QMD范围规则添加rawKeyPrefix支持,并保留遗留的keyPrefix:"agent:..."匹配,防止在操作员匹配以agent为前缀的会话密钥时绕过范围拒绝。
lMemory/Builtin: 将内存观察器的目标缩小到markdown globs,并忽略依赖关系/虚拟环境目录,以减少内存同步启动期间的文件描述符压力。(#11721)感谢@rex05ai。
l安全性/内存-LanceDB:将recalled memories 视为不可信的上下文(逃避注入的内存文本+ 显式的非指令框架),在自动捕获期间跳过可能的提示注入负载,并将自动捕获限制为用户消息以减少内存中毒风险。(#12524) 感谢@davidschmid24。
lSecurity/Memory-LanceDB:需要明确的autoCapture: true 选择(默认现在禁用)以防止自动捕获PII,除非操作员主动启用它。(#12552) 感谢@fr33d3m0n。
l诊断/内存:修剪过时的诊断会话状态条目,并限制追踪的会话状态,以防止在长时间运行的网关上发生无界的内存增长。(#5136) 感谢@coygeek 和@vignesh07。
lGateway/Memory: 清理agentRunSeq 在运行完成/中止时的跟踪,并强制实施维护时间上限修剪,以防止在长时间运行过程中无界序列映射增长。(#6036)感谢@coygeek 和@vignesh07。
l自动回复/内存:通过驱逐最旧的条目和删除重置(假)标志来限制ABORT_MEMORY的增长,以便在长时间运行时,abort状态跟踪不会无限制地增长。(#6629) 感谢@coygeek和@vignesh07。
lSlack/Memory: 绑定线程启动器缓存增长,使用TTL + 最大大小修剪防止长时间运行的Slack 网关累积无限制的线程缓存状态。(#5258) 感谢@coygeek 和@vignesh07。
l出站/内存:通过最大大小驱逐和主动TTL修剪来限制目录缓存增长,以防止长时间运行的网关积累无限制的目录条目。(#5140) 感谢@coygeek和@vignesh07。
l技能/ 内存:从远程技能缓存中移除未连接的节点,以防止在长时间运行中积累过时的节点元数据。(#6760) 感谢@coygeek。
l沙箱/工具:使沙箱文件工具支持绑定挂载(包括绝对容器路径),并强制对写操作实施只读绑定语义。(#16379)感谢@tasaankaeris。
l媒体/安全性:默认允许本地媒体从OpenClaw 状态工作区/和沙箱/根读取,以便生成的工作区媒体可以在没有不安全的全局路径绕过的情况下传递。(#15541) 感谢@lanceji。
l媒体/安全:通过要求调用者在标记路径为已验证时显式覆盖 readFile ,来加强本地媒体白名单的绕过,并拒绝文件系统根的 localRoots 条目。(#16739)
Discord/安全:增强语音消息媒体加载(SSRF + 允许的本地根检查),以便工具提供的路径/URL 不能用于探测内部URL 或读取任意本地文件。
lSecurity/BlueBubbles: 需要显式的mediaLocalRoots 允许列表,以防止本地文件泄露。(#16322) 感谢@mbelinky。
安全/BlueBubbles:当多个webhook 目标匹配相同的guid/password 时,拒绝模糊的共享路径webhook 路由。
l安全性/BlueBubbles:通过仅接受无密码的webhook 来确保BlueBubbles webhook 身份验证在反向智能体后进行,以便仅对直接localhost 循环请求(现在转发/智能体的请求需提供密码)。感谢@simecek。
lFeishu/Security: 加强媒体URL 获取的防护,以防SSRF 和本地文件泄露。(#16285) 感谢@mbelinky。
安全/Zalo:当多个webhook 目标匹配同一密钥时,拒绝模糊的共享路径webhook 路由。
l安全/Nostr:要求回环源并阻止跨域配置文件变更/导入尝试。感谢@vincentkoc。
安全/信号:在安装过程中加强signal-cli 归档提取,以防止路径遍历到安装根目录外。
l安全性/钩子:将钩子变换模块限制为 ~/.openclaw/hooks/transforms (防止路径遍历/通过配置加载模块)。配置注意事项:hooks.transformsDir 现在必须在该目录内。感谢 @akhmittra。
安全性/钩子:忽略指向包目录外的钩子包清单条目(防止在钩子发现过程中加载树外处理程序)。
l安全/归档:强制执行归档提取的条目/大小限制,以防止因高扩展的ZIP/TAR归档导致的资源耗尽。感谢@vincentkoc。
l安全/媒体:在解码之前拒绝超大尺寸的base64编码输入媒体,以避免大内存分配。谢谢@vincentkoc。
l安全/媒体:流式和限制基于URL的输入媒体获取,以防止因过大响应而导致的内存耗尽。感谢@vincentkoc。
l安全/技能:加固下载安装技能的归档提取,以防止路径遍历超出目标目录。感谢@markmusson。
lSecurity/Slack:即使在dmPolicy=open的情况下,也要对DM斜杠命令进行计算命令授权,以防止未经授权的用户通过DM运行特权命令。感谢@christos-eth。
lSecurity/iMessage: 将DM pairing-store 身份排除在群组白名单授权之外(防止跨上下文命令授权)。感谢@vincentkoc。
l安全性/Google Chat:弃用users/<email> 允许列表(将users/... 视为不可变用户ID 仅);保留原始电子邮件允许列表以提高可用性。谢谢@vincentkoc。
l安全性/Google 聊天:在多个webhook 目标成功验证时,拒绝模糊的共享路径webhook 路由(防止跨账户策略上下文错误路由)。感谢@vincentkoc。
lTelegram/安全:需要数字化的Telegram发送者ID进行白名单授权(拒绝@用户名主体),在openclaw doctor --fix中自动解析@用户名为ID(如果可能),并在openclaw安全审核中当遗留配置包含用户名前发出警告。感谢@vincentkoc。
lTelegram/安全:当webhookSecret 缺失或为空时拒绝Telegram webhook 启动(防止未经身份验证的webhook 请求伪造)。感谢@yueyueL。
安全/Windows:在产生子进程时避免调用shell,以防止通过不可信的CLI参数(例如,智能体提示文本)进行cmd.exe元字符注入。
lTelegram: 将webhook 回调超时处理设置为onTimeout: "return" (10s),以便长时间运行的更新处理不再产生webhook 500s 和重试风暴。(#16763) 感谢@chansearrington。
l信号:在归一化过程中保留大小写敏感的组:目标ID,以便混合大小写组ID不再因“未找到组”而失败。(#16748)感谢@repfigit。
lFeishu/Security: 加强媒体URL 获取的防护,以防SSRF 和本地文件泄露。(#16285) 感谢@mbelinky。
l安全/智能体:将CLI进程清理范围限制在拥有的子PID,以避免在共享主机上终止不相关的进程。感谢@aether-ai-agent。
lSecurity/Agents: 在非沙箱模式下强制执行apply_patch的工作区根路径边界,以阻止遍历和符号链接转义写入。感谢@p80n-sec。
l安全/智能体:在workspaceOnly下执行apply_patch删除hunks的符号链接转义检查,同时仍允许删除符号链接本身。感谢@p80n-sec。
l安全/智能体(macOS):在写入Claude CLI钥匙串凭证时防止shell注入。(#15924) 感谢@aether-ai-agent。
lmacOS: 限制未键入的openclaw://agent 深链接,并忽略交付/到/频道,除非提供有效的无人值守密钥。感谢@Cillian-Collins。
lScripts/Security: 验证GitHub 登录并避免在scripts/update-clawtributors.ts 中调用shell,以防止通过恶意提交记录进行命令注入。感谢@scanleale。
l安全性:通过要求完整的重定向URL来修复Chutes手动OAuth登录状态验证(拒绝仅代码粘贴)(感谢@aether-ai-agent)。
l安全/网关:通过将工具提供的gatewayUrl 覆盖限制为回环地址或配置的gateway.remote.url 来加固。感谢@p80n-sec。
lSecurity/Gateway: 通过node.invoke 阻止system.execApprovals.*(请使用exec.approvals.node.* 代替)。感谢@christos-eth。
l安全/网关:在解码前拒绝过大的base64 聊天附件,以避免大内存分配。感谢@vincentkoc。
l安全/网关:停止在skills.status要求检查中返回原始解析的配置值(防止operator.read客户端读取秘密)。感谢@simecek。
lSecurity/Net: 修复通过全格式IPv4 映射的IPv6 字面量绕过SSRF 保护(阻止回环/私有/元数据访问)。感谢@yueyueL。
l安全/浏览器:加强浏览器控制文件上传+ 下载助手,以防止路径遍历/ 本地文件泄露。谢谢@1seal。
l安全/浏览器:阻止对回环浏览器控制路径的跨域修改请求(CSRF 加固)。感谢@vincentkoc。
l安全/节点主机:强制执行system.run rawCommand/argv 一致性,以防止白名单/批准绕过。感谢@christos-eth。
l安全/执行批准:通过shell 扩展防止safeBins 白名单绕过(仅限主机执行白名单模式;默认未启用)。感谢@christos-eth。
l安全/执行:通过默认禁用项目本地node_modules/.bin 引导,禁止node-host PATH 重写,以及默认通过当前可执行文件生成ACP 服务器,来增强PATH 处理的安全性。感谢@akhmittra。
lSecurity/Tlon: 默认通过阻止私有/内部主机来加强Urbit URL获取对SSRF的防护(选择加入:channels.tlon.allowPrivateNetwork)。感谢@p80n-sec。
l安全/语音通话(Telnyx):接收入站事件时需要进行Webhook签名验证;未设置telnyx.publicKey的配置现在会被拒绝,除非启用skipSignatureVerification。感谢@p80n-sec。
l安全/语音通话:即使在启用ngrok免费层回环兼容模式时,也需要有效的Twilio webhook签名。感谢@p80n-sec。
l安全/发现:停止将Bonjour TXT记录视为权威路由(更倾向于解析后的服务端点),并防止发现过程覆盖存储的TLS钉;自动连接现在需要一个先前可信的网关。感谢@simecek。
贡献者
。。。。。。xqliu, vincentkoc,和其他54位贡献者

