Claude Code「不再询问」功能外泄密码 1,122 个公开档案含 2,539 个真实密钥

安全公司 Apiiro 研究发现,开发者在 Claude Code 点选「是,不再询问」后,含密码的指令会以明文存入专案设定档;扫描发现 1,122 个公开 GitHub 档案含真实密钥,涉及 1,994 个仓库、63 间机构。
安全公司 Apiiro 11 月 5 日发布研究报告指出,AI 程式编写工具 Claude Code 的「是,不再询问」批准功能,可导致真实密码与金钥外泄到公开 GitHub 仓库。研究团队在 11 月 1 日至 3 日扫描发现,104,185 个公开的 .claude/settings.local.json 档案中,有 1,122 个含有真实密钥,共 1,379 个不同密钥值。
扩大追查后共发现 2,539 个密钥
扩大到 Git 历史、共享设定档与智能体对话纪录后,研究团队共发现 2,539 个不同密钥,分布于 1,994 个公开仓库,波及 63 间机构,多为软件公司。外泄内容包括数据库密码、云端金钥、API 权杖与 SSH 登入凭证,其中一家数据库厂商的管理级云端金钥、Azure 生产数据库密码、Square 生产权杖与一间医疗纪录数据库的拥有者密码亦在其中;一家公司向 Apiiro 确认,其外泄金钥当时仍然有效。数据库密码占大宗,共 379 个,另有 122 个 Supabase 服务角色金钥与 43 组 SSH 登入资料,部分含 root 密码。
一点批准 密码写进设定档再被推送上网
外泄的机制源于日常开发流程:开发者请 Claude Code 检查数据库、测试 API 或排查登入故障时,工具会准备一条含凭证的指令并在执行前征求批准;若开发者点选「是,不再询问」,整条含密码的指令便以明文存入专案内的 .claude/settings.local.json,成为允许规则,之后可免提示重复执行;一旦该档案被提交并推送到 GitHub,密码即公开。Claude Code 首次在 Git 仓库写入该档案时,会在开发者的全域 Git 忽略档加入排除规则,但保护不会随专案转移,亦不覆盖已被追踪的档案,或其后才变成仓库的资料夹。
常用扫描工具亦漏检两成档案
值得注意的是,常用密钥扫描工具亦未能全数检出:1,122 个受影响档案中,Gitleaks 仅检出 564 个、TruffleHog 检出 643 个,215 个两者皆漏检——原因是密码常以 PGPASSWORD=、sshpass -p 或请求标头形式出现,缺乏标准金钥格式。Apiiro 建议开发者立即检查现有档案与 Git 历史中的 .claude/settings.local.json,先撤销已外泄的凭证再删除档案,并以密钥管理工具引用取代明文密码。截至 11 月 8 日,Anthropic 尚未就此公开回应。研究强调,Apiiro 未实际试用这些凭证,仅一家公司确认金钥有效;事件属于凭证外泄,并非已证实遭入侵。
N環球 
💬 留言
暂时还没有留言,来抢沙发!