Claude Code 误将密码写入项目文件:2539 个真实凭据现身 GitHub
科技媒体 Ars Technica 昨日(11 月 9 日)发布博文,指出 AI 编程智能体 Claude Code 正在把部分开发者的敏感凭据意外暴露到公开的 GitHub 仓库中。
11 月 9 日,科技媒体 Ars Technica 发布博文称,AI 编程智能体
Claude Code 正把部分开发者的敏感凭据意外泄露到公开的 GitHub 仓库中,相关消息于 11 月 10 日传出。
安全公司 Apiiro 的研究人员查到,逾 10 万份 Claude Code 本地设置文件被传上公共仓库,其中约 1,100 份含有数据库密码、API Token、私钥或 root 登录信息等机密数据。把 Git 历史记录、共享设置文件及智能体聊天记录合起来看,共在 1,994 个代码库中识别出 2,539 个真实凭据。
受波及的有 63 个组织,学生团队、初创企业、软件代理商及成熟供应商都在其中。泄露的内容包括 Azure 数据库密码、Square 生产令牌、SSH root 登录信息,甚至还有医疗记录数据库的拥有者密码。相关信息如下:

允许列表越长,泄露率越高。超过 8 KB 的文件里,每十个就有一个藏着真正的秘密;小于 500 字节的文件中,这一比例不到五百分之一。开发者点“不再询问”的时间越久,文件里攒下的秘密就越多。

Claude Code 处理“自动执行命令”授权的方式,是问题的根源。工具会询问用户是否允许某条 Shell 命令运行,一旦选择“是,且不再询问”,这条授权规则就会被写进本地的.claude/settings.local.json文件,而命令原文也可能一并被记下来,里面夹带的密码、令牌或密钥同样难以幸免。

按照设计,这个设置文件应当被加进开发者全局的.gitignore,一般不会跟着代码一起提交。不过这一设置未必对具体仓库生效:项目被克隆到另一台电脑,或者某个普通文件夹后来才被初始化为 Git 仓库,敏感文件就可能被误传上去。

研究还提到,Claude Code 有时不等用户确认,就自行把设置文件的变更提交到仓库。更麻烦的是,就算原始仓库删掉了泄露文件,只要其他用户已经创建分支(fork),密钥仍可能继续留存。
这类风险此前就被发现过。2025 年 8 月已有 Claude Code 的 bug 报告指出,相关设置文件可能没有被正确加入.gitignore,或者敏感命令被写进了其他不受 Git 保护规则约束的文件;这些报告后来因 60 天无活动而被关闭。
11 月 7 日,Claude Code 团队的 Boris Cherny 在 Hacker News 上回应,团队正在研究预防措施,设置文件本不该被提交到版本控制中。他还建议用户用密钥扫描工具清理敏感信息,并透露正考虑把密钥扫描功能内置到 Claude Code 里。
