Claude Code v2.1.248 于 8 月 27 日 22:12:20 UTC 发布。在大约 40 条更新日志条目中,有这样一条原文写道:"Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine."
这些文件名意味着什么
未提交的 prod.env 是生产环境凭据。.tfvars 文件是 Terraform 变量——通常包含云访问密钥和基础设施机密。id_rsa.swo 是私有 SSH 密钥的 Vim 交换文件。这些并非偶然产生的痕迹;正因为它们属于机密,开发者才会刻意将这些文件排除在版本控制之外。
另一个头条条目
同一版本还加入了 --restricted(或 CLAUDE_CODE_RESTRICTED=1),该功能"移除运行命令或代码的内置工具以及 WebFetch(除非在 --tools 中指定),将文件工具限制在工作目录内,拒绝 bypassPermissions,并忽略用户、项目和本地设置文件。" 2.1.248 还将跨会话消息扩展到 Bedrock、Vertex 和 Foundry,将 Workflow 工具说明从约 5.7k 个 token 压缩到 1k token,并修复了在刷新 OAuth 令牌后,长会话中"大约每小时一次"发生的提示缓存未命中问题。
常见表述哪里出了错
问题在于缺少问题框架。一项机密泄露修复被作为一条无编号项目发布——没有安全通告,没有 GHSA 标识,没有 CVE,没有“需采取行动”的通知,没有披露引入时间,也没有受影响版本范围。受影响用户无法判断自己的密钥是否离开了本机,也无法判断持续了多久。
其次,.swo 和 .tmp 这类细节指向了 bug 类型:上传器过滤了标准凭据文件名,却没有过滤紧挨其旁的编辑器生成变体。这属于 denylist 失效,是设计层面的问题,却在这里被当作一次性修复来报告。
第三,--restricted 是加固标志,不是沙箱。注意措辞:它会移除工具并忽略设置文件。这只是进程内能力收缩,不是操作系统级边界——而这个名字会让读者误以为它具有隔离能力。它还会静默忽略用户、项目和本地设置,这一行为变化会让任何以为它只会移除工具的人感到意外。
最后,发布节奏掩盖了严重性:26 小时内连续发布 3 个版本,而 2.1.250 仅标注为“Bug fixes and reliability improvements”,安全相关修复便与常规变更难以区分。
