Claude Code 授权配置被曝泄露真实密钥
Apiiro 研究称,在公开仓库的 Claude Code 配置及相关记录中发现 2539 个真实凭据,涉及 1994 个代码库。风险源于自动执行授权可能保存含密钥的命令原文,而本地设置文件又被误提交;团队表示正在研究预防措施。
AI 深度解读
Claude Code 的一次「不再询问」,可能把带密码的命令留在项目设置里;设置再被提交到公开 GitHub 仓库,凭据就跟着暴露。IT之家转述的 Apiiro 研究共识别出 1,994 个代码库中的 2,539 个真实凭据。
这件事值得程序员关注,因为泄露链条藏在日常授权和提交操作中。团队已回应正在研究预防措施,但原文没有给出修复版本,也没有确认内置密钥扫描何时落地。
点了「不再询问」,为什么会留下密码
问题出在 Claude Code 保存 Shell 命令授权的方式。
用户允许一条命令运行,并选择「是,且不再询问」后,授权规则会写入本地的 .claude/settings.local.json。如果命令本身夹带数据库密码、API Token 或密钥,命令原文中的敏感内容也可能被记录。
你以为保存的是执行许可,文件里却可能同时留下凭据。
按原文描述,这个文件应被加入开发者全局的 .gitignore。但全局忽略配置依赖具体机器:项目换台电脑,或者普通文件夹后来才初始化为 Git 仓库,原先预期的保护就可能没有生效。
这里有两个连续的问题:敏感信息先进入授权文件,授权文件随后进入版本控制。只处理其中一个环节,都不能完整覆盖这条泄露路径。
研究还称,Claude Code 有时会未经用户确认,自行提交设置文件变更。不过,原文没有交代这种行为对应的版本、触发条件和复现步骤,不能据此推断每次自动提交都会发生同样的问题。
2,539 个凭据,和哪些操作有关
Apiiro 研究人员发现,超过 10 万份 Claude Code 本地设置文件被上传到公共仓库,其中约 1,100 份含有机密数据。结合 Git 历史记录、共享设置文件及智能体聊天记录,他们共识别出 1,994 个代码库中的 2,539 个真实凭据。
这几组数字口径不同。2,539 个凭据并非全部来自当前可见的本地设置文件,也不能直接把它除以文件数量,当成设置文件的泄露率。
受影响对象涉及 63 个组织,从学生团队、初创企业到软件代理商和成熟供应商都有。泄露内容包括 Azure 数据库密码、Square 生产令牌、SSH root 登录信息,以及医疗记录数据库的拥有者密码。
研究还观察到,允许列表越大,文件含有秘密的比例越高:
- 超过 8 KB 的文件,每十个就有一个包含真实秘密。
- 小于 500 字节的文件,这一比例不到五百分之一。
这提示我们,长期积累的命令授权值得重点检查。但原文没有提供控制变量或对照实验,不能把文件体积直接当成因果解释。大文件也可能只是记录了更多命令,增加了碰到敏感内容的机会。
文件小,同样不代表安全。
官方回应了,为什么还不能等修复
按原文时间线,早在 2025 年 8 月,就有 bug 报告指出设置文件可能未被正确忽略,或者敏感命令被写入其他不受 Git 忽略规则保护的文件。这些报告后来因 60 天无活动而被关闭。
11 月 7 日,Claude Code 团队的 Boris Cherny 在 Hacker News 回应,团队正在研究预防措施。他表示设置文件本不应进入版本控制,并建议使用密钥扫描工具,同时称正考虑将密钥扫描内置到 Claude Code。

Ars Technica 于 11 月 9 日报道此事,IT之家于 11 月 10 日转述。就这份材料而言,「正在研究」「考虑内置」都还不能等同于修复已经发布。
更现实的问题是,原仓库删除文件,也无法保证 fork 中的副本消失。当前目录里看不到密码,与密码从未公开过,是两回事。
我的判断
这份研究最有价值的地方,是指出了一条容易被忽视的持久化路径:命令执行结束了,命令里的秘密却可能继续躺在授权记录中。
它也说明,只依赖开发者机器上的全局 .gitignore,很难覆盖项目迁移和新建仓库等情况。相比之下,仓库级忽略规则更容易随项目传递,提交前密钥扫描则能补充检查实际提交内容。不过,已经进入版本历史的文件,不会因为后来补上忽略规则就自动消失。
同时也要守住结论边界。原文没有提供完整研究方法、凭据有效性的判定标准,也没有披露这些凭据是否已经被利用。我们可以确认研究报告了公开暴露,不能把它写成所有受影响组织都已遭到入侵。
官方修复可以减少后续泄露,已经公开的凭据仍需要单独处理。
能拿来做什么
- 在前端或 Node 项目中检查
.claude/settings.local.json的内容、Git 跟踪状态和历史提交;若它已经被跟踪,补写.gitignore还不够。 - 审查「不再询问」对应的完整命令,尤其是包含数据库连接串、API Token 或 SSH 登录信息的命令,避免把带秘密的命令长期保存在允许列表中。
- 提交 AI 生成的改动前检查暂存区,并用密钥扫描工具检查设置文件和历史记录,不只关注业务代码。
- 如果确认凭据曾进入公开仓库,应优先吊销或轮换凭据,再清理文件与历史;删除当前文件不能收回其他人已经获得的副本。