Claude编程助手泄露密码,1122个文件公开

Claude编程助手泄露密码,1122个文件公开

安全公司Apiiro本周披露,Claude Code的一个常用功能正在把用户的密钥公开到GitHub。用户请Claude Code查询数据库或调用API时,它提议的命令里往往带有配置文件中的密钥;用户一旦选择“是的,且不再询问”,这条含密钥的命令原文就会被存入项目内的.claude/settings.local.json权限规则中。

问题出在忽略规则上:这个文件本应只留在本地,Claude Code只把它加入了全局git ignore,却没有写入项目自身的.gitignore。于是文件随着代码一起被提交到了公开仓库,密钥就这样被晒在了阳光下,任何人都能下载。

Apiiro的扫描结果触目惊心:在GitHub公开的104185份该文件、涉及103617个仓库中,1122份含有真实密钥,共1379个不同密钥。计入git历史、共享配置文件与智能体对话记录后,总计2539个真实密钥分布在1994个仓库中,63个组织受到影响。

数据库密码与云密钥成重灾区

泄露密钥的种类五花八门:379个数据库密码、122个Supabase service-role密钥、103个Supabase账户Token、43个SSH登录凭证(含root密码)、42个GitHub、GitLab与npm Token、23个AWS密钥,以及6个私钥。典型案例包括某数据库厂商自有的管理级云API密钥、生产环境Azure Postgres密码与Square生产Token。

Apiiro在可追溯的1105个含真实密钥的仓库中发现,539个的相关提交由Claude共同署名。研究团队还在Claude Opus 5.5与Fable 5.1上复现了这一机制,确认问题真实存在,且研究未使用或测试任何泄露的凭证。

Anthropic回应迟缓,用户早有报告

Anthropic在研究发表前已收到告知。发表后,Claude Code负责人Boris Cherny在Hacker News上表示,团队正在研究如何防止此类泄露,基本的密钥扫描是拟尝试的方案之一。但这番表态来得有些晚:自2025年8月以来,用户已在GitHub issue中多次报告该机制,均未获Anthropic回复,其中三条还被自动关闭。

对开发者来说,教训很直接:检查自己的公开仓库里有没有.claude/settings.local.json,检查git历史里是否残留密钥,轮换所有可能泄露的凭证。

这件事也暴露了AI编程工具的结构性风险:智能体干活需要读取本地配置与密钥,每一次“记住”都可能变成一次泄露,便利与安全之间的线,所有厂商都要重新划。