Claude Code将2539个真实凭据上传GitHub,授权记录疏漏是主因
研究人员发现,Claude Code 在记录自动执行命令授权时,可能连同密码、令牌和密钥写进本地设置;文件又因 Git 配置或自动提交进入公开仓库。研究团队据此识别出 2539 个真实凭据,Anthropic 正研究预防措施。

- 2539个真实凭据被识别
安全公司 Apiiro 在公开的 Claude Code 设置、Git 历史和聊天记录里,识别出 2539 个能通过认证的真实凭据,涉及 1994 个代码库、63 个组织。泄露的起点不是一次误传:用户点下“是,且不再询问”,命令里的密码、令牌和私钥就跟着授权记录写进本地设置,再被 Git 提交带进公开仓库。省下的几次弹窗,代价是长期有效的密钥。
2539 个真实凭据,流进了公开仓库
Apiiro 在公开的 Claude Code 设置、Git 历史和聊天记录里,找到了可用于认证的真实凭据。
安全公司 Apiiro 的研究人员交叉检查了公开的 Claude Code 本地设置文件、Git 历史记录、共享设置文件和智能体聊天记录。他们识别出 2539 个真实凭据,涉及 1994 个代码库和 63 个组织。这些密码、令牌或密钥能让外部人员通过认证,不是普通文件里长得像密码的字符串。
名单覆盖学生团队、初创企业、软件代理商和成熟供应商。公开仓库中出现了 Azure 数据库密码、Square 的生产环境令牌、SSH 的 root 登录信息,以及医疗记录数据库的拥有者密码。同一份设置、同一段 Git 历史或聊天记录,可能留下多处秘密,因此凭据数量不能直接等同于泄露文件数。
这些文件本应留在本地,后来却连同命令原文里的密码、令牌一起被上传至 GitHub。版本控制(记录文件每次修改的系统)一旦收进敏感信息,后续删除文件也不等于秘密已经消失。
一次确认,可能埋下长期密钥
Claude Code 把用户授予的长期执行权,连同命令里的秘密一起保存。省掉确认框,也多了一条通往公开仓库的路径。
Claude Code 是 Anthropic 推出的 AI 编程智能体(代替人执行开发任务的软件代理)。运行 Shell 命令(操作系统命令解释器)前,用户可以点“是,且不再询问”,让同类命令以后跳过确认。
这项授权会写进项目本地的 .claude/settings.local.json。被允许的完整命令也可能一起落盘,包括命令行里的密码、令牌或密钥。
Apiiro 研究人员在超过 10 万份被上传到公共仓库的 Claude Code 本地设置文件中,发现约 1,100 份含有数据库密码、API Token(调用外部服务的访问凭证)、私钥或 root 登录信息等机密。
比例接近百分之一。样本来自已上传的公开设置文件,不能直接代表所有 Claude Code 用户。
.gitignore(指定 Git 不跟踪哪些文件的规则)也未必兜得住。该设置文件按设计应加入全局忽略规则,但全局规则未必作用到具体仓库。
代码被克隆到另一台电脑,或普通文件夹后来才初始化为 Git 仓库,原本的保护就可能失效。研究还称,Claude Code 有时会在用户未确认时提交设置文件变更,“本地记忆”也会跟着一次推送变成公共记录。
删除文件不等于止损。若其他人已经创建分支(fork,复制出的仓库版本),密钥仍可能留在副本和历史中。多年积累的授权记录,还会把若干次本应只留在终端的秘密串在一起。个人练习项目、小型工作室和临时仓库也可能缺少专人检查忽略规则与提交历史。
点一次确认,从此多了一层含义:用户减少了几次弹窗,智能体却可能长期保留执行权限,并保存含有秘密的命令原文。官方团队成员 Boris Cherny 说,团队正在研究预防措施,也考虑把密钥扫描功能内置进 Claude Code。问题尚在处理中,安全团队此前已发现相关迹象。
后面约 6 分钟,是会员的。
免费部分到这里。墙内还有:
墙内重点:你以为只是少点几次“允许”,却可能把秘密一起推向公开仓库。