网络安全公司 Apiiro 近期发出警告,指出 Anthropic 旗下流行的 AI 编码助手 Claude Code 中一项提升开发者效率的便利功能,存在将敏感密码和安全凭据意外暴露于公共互联网的风险。若组织或个人正在使用 Claude Code 进行软件开发,需立即审查其公共代码仓库,以排查潜在的凭证泄露隐患。
漏洞机制:便利性与安全性的冲突
Claude Code 的核心能力不仅限于提供代码修改建议,它还具备在开发者计算机上提议并执行系统命令的能力,例如连接数据库进行故障排查或调用外部软件服务。此类操作通常需要输入密码或私有访问令牌。
出于安全考量,Claude Code 默认会在执行敏感命令前请求用户授权。然而,频繁的授权确认会打断开发工作流。为解决此问题,系统提供了“Yes, and don’t ask again”(是,且不再询问)选项。选择该选项后,Claude Code 将在未来自动执行已批准的命令。
技术缺陷在于:Claude Code 并非仅记录“该命令已被允许”的布尔状态,而是将整个命令字符串(包括其中明文嵌入的密码或访问密钥)直接写入本地设置文件 .claude/settings.local.json 中。

虽然该文件设计为保留在开发者本地,且 Claude Code 采取了基础措施防止其被直接上传至 GitHub,但这些保护机制存在盲区。如果该文件已被 Git 版本控制系统跟踪,或者项目目录结构被移动、配置被更改,该设置文件便可能随代码库一同被推送至公共仓库。一旦发生这种情况,任何访问该公共仓库的人员均可直接读取其中保存的明文凭据。
泄露规模与潜在影响评估
Apiiro 研究人员 Shmulik Cohen 和 Matan Giladi 对 GitHub 上的公开数据进行了大规模抽样分析。他们检查了 103,617 个仓库中的 104,185 个公开可访问的本地 Claude Code 设置文件副本。
调查数据显示:
- 直接泄露率:约 1.1% 的受检文件包含被归类为真实秘密的内容,仅在这些文件中就提取出 1,379 个不同的凭据。
- 历史与扩展调查:通过审查文件的历史版本以及 AI 编码工具产生的其他日志记录,研究人员在 1,994 个公共仓库中累计发现了 2,539 个不同的凭据。
- 受影响实体:已识别出 63 个组织的暴露凭据,范围涵盖小型开发团队、初创公司至成熟的技术供应商。泄露内容涉及生产环境数据库密码、云服务管理 API 密钥,以及与处理医疗记录等敏感数据的应用程序相关的访问凭证。
尽管 Apiiro 未尝试利用这些凭据登录受影响系统以验证其有效性,但已有组织确认其暴露的密钥在事发时处于活动状态。这证实了嵌入在 AI 生成命令中的凭据,可能在开发者毫无察觉的情况下转变为公开的安全敞口。
行业深层隐患:AI 智能体的行为审计缺失
这一发现揭示了企业对 AI 智能体依赖加深所带来的更广泛安全挑战。风险不仅存在于 AI 智能体运行时的即时操作,更延伸至其任务完成后留下的持久化记录。
根据 VentureBeat 2026 年 10 月关于智能体安全和身份的 VB Pulse 研究调查:
- 24% 的企业 AI 和安全领导者表示,其智能体主要依赖共享 API 密钥或与人类/服务账户绑定的凭据运行。
- 20% 的受访者报告称,其组织缺乏自动检测 AI 智能体何时采取未经授权行动的机制。
这意味着,仅从 GitHub 移除当前暴露的设置文件往往是不够的。由于 Git 的历史记录特性,以前的版本可能仍可通过仓库历史或其他开发者克隆的本地副本被访问。
官方回应与修复进展
Anthropic 已正式承认该问题的存在。Claude Code 负责人 Boris Cherny 于 11 月 7 日在 Hacker News 的讨论中回应了此项发现。他表示,团队正在积极探索改进方案,包括在 Claude Code 中引入内置的暴露凭据扫描功能,以及在自动权限系统中增加额外的安全护栏。截至目前,Anthropic 尚未公布具体的修复方案或发布日期。
企业安全自查与修复指南
针对当前风险,Apiiro 为企业安全团队和开发者提供了标准化的五步排查与修复流程。建议立即按此流程执行:
- 全局搜索设置文件
在组织的 GitHub 仓库中,全面搜索.claude/settings.local.json和.claude/settings.json文件,定位所有可能包含敏感信息的公开副本。 - 审查 Git 历史记录
检查每个相关仓库的完整 Git 历史记录。即使该设置文件在当前主分支中已被删除,它仍可能存在于历史提交(commit)中,需通过git filter-repo或 BFG Repo-Cleaner 等工具彻底从历史记录中抹除。 - 强制轮换暴露凭据
对于确认曾存在于该文件中的每一个密码、API 密钥或 Token,必须立即在对应的服务提供商处进行轮换(撤销并生成新凭据)。不要假设未被利用的凭据是安全的。 - 更新
.gitignore模板
将.claude/settings.local.json和.claude/settings.json明确添加到组织全局或项目级别的.gitignore模板中,从版本控制源头阻断其被提交的可能性。 - 重构命令中的凭据引用方式
停止在 AI 智能体执行的命令中直接明文输入秘密信息。应全面改用环境变量或秘密管理器进行引用。例如,将命令中的真实数据库连接字符串替换为$DB_URL。这样,即使命令被记录,日志中保留的也仅是变量名而非敏感数据本身。
依赖 AI 编码助手的组织应尽快将上述检查纳入日常安全合规流程,以平衡开发效率与系统安全性。(信息来源)















