Anthropic 于 8 月 28 日 18:19 UTC 发布了 Claude Code v2.1.251。其更新日志中的五项属于沙箱或权限逃逸问题,而且它们的格式与文件中的其他条目完全一样。
这五项问题
检查时使用时间/使用时使用时间(time-of-check/time-of-use)符号链接替换,使 Read、Write 和 Edit 工具在路径通过验证后仍可在获准目录之外运行。插件加载中的路径遍历。 允许项目级设置开启 原始 API 请求体日志记录,并绕过管理员配置的遥测收集器。工作流运行器在执行权限检查之前读取了一个 脚本路径。以及 Grep 和 Glob 继续跟随符号链接,越过本应阻止这些读取的 拒绝规则。
这一类别为何重要
这些不是模型行为缺陷,而是让代码代理能够安全指向代码仓库的执行层:承诺是代理只会接触你批准的内容,不会碰别的。TOCTOU 符号链接替换会确定性地破坏这一承诺——检查通过后,链接被重新指向,写入落到别处。日志项则是同一问题的另一种形式:已检出项目中的一个设置改变了代理记录什么以及把记录发送到哪里。
常见解读错在哪里
有人把更新日志中的位置解读为严重性判断——如果问题严重,就会发布安全公告。这一推断在这里并不成立,因为同一个仓库 此前已发布十份安全公告,其中几份正属于这一类别,包括年内早些时候的一起高危符号链接沙箱逃逸。因此,该项目既识别了这一类别,也有相应渠道。改为通过更新日志发布,意味着下游用户不会看到 CVE、严重性等级,任何依赖扫描器也不会发出通知——修复已发布,但只有阅读发行说明的人才会知道曾经有问题需要修复。
实际后果
在 8 月 28 日,依据公告信息来拦截代理更新的组织什么也没有看到。正确的运维理解是:代码代理的更新日志如今就是一条安全信息流,必须像安全信息流一样加以监控。
