Claude Code 在 GitHub 泄露密码和密钥:一个「不再询问」选项惹的祸
Ars Technica 报道称,Anthropic 的 Claude Code 因“不再询问”提示设计缺陷,导致用户密码、API 密钥等敏感信息被意外提交至 GitHub 公开仓库。这一事件暴露了 AI 编码助手在安全权限设计上的深层隐患,也引发了开发者对自动化工具信任边界的广泛讨论。
2026 年 11 月,Ars Technica 记者 Kyle Orland 报道了一起让开发者社区感到不安的安全事件。出问题的是
Anthropic 旗下的 AI 编码工具 Claude Code:密码、API 密钥、访问令牌等大量敏感信息正在 GitHub 上被意外泄露。根源并不是什么复杂的漏洞利用,而是一个看上去无害的交互设计——「Do not ask again」(不再询问)提示。
一个提示框引发的泄密风暴
据 Ars Technica 报道,
Claude Code 运行时需要请求访问文件、执行命令或读取环境变量,一旦碰到需要用户确认的操作,就会弹出权限请求。界面里有个「Do not ask again」选项,本意是方便连续操作。问题在于,不少用户勾选之后,Claude Code 对类似操作就不再二次确认,直接把含有敏感信息的文件内容读进上下文,并在后续生成代码或提交时写进 GitHub 仓库。
“Do not ask again” prompt leads to passwords, API keys, and more being shared.
报道称,受影响的仓库里能翻到数据库连接字符串、云服务访问密钥、OAuth 令牌等本不该公开的内容。有些泄露信息在被发现之前,已经在公开仓库里躺了数小时甚至数天,任何人都能看到。GitHub 的公开仓库搜索加上第三方监控工具,意味着秘密一旦被推送上去,几乎不可能彻底撤回。
为什么 AI 编码助手更容易「闯祸」
按照传统开发流程,开发者对 Git 提交内容有明确的审查意识,一般会在里排除敏感文件,或者改用密钥管理工具。但 AI 编码助手一介入,这个习惯就变了。Claude Code 这类工具以「自主代理」的方式工作,能读项目文件、生成代码、执行 Git 命令。用户为了效率勾上「不再询问」,等于把安全审查的一部分交给了 AI。.gitignore
更深一层的问题出在上下文边界上。AI 模型生成代码时要读取环境变量、配置文件甚至本地密钥库,这些东西一旦进入模型上下文,就可能在后续输出里被复现。要是模型判断需要把配置写进代码才能「让项目跑起来」,敏感信息就顺势进了版本历史。安全专家指出,这不是 Claude Code 独有的缺陷,所有具备文件系统和命令执行权限的 AI 代理工具都面临同样的挑战。
行业背景:AI 代理的权限困境
2025 年以来,AI 编码助手从「代码补全」快速演进成「自主代理」,Cursor、GitHub Copilot、Claude Code 等工具先后获得了读取项目、运行测试、提交代码的能力。效率上去了,权限模型却没跟上。多数工具采用「首次询问、后续信任」的交互方式,这跟最小权限原则天生就有冲突。
这次事件也不是孤例。此前已有研究团队演示过用提示注入诱导 AI 代理泄露环境变量,还有开发者在社交媒体上报告 Copilot 把本地配置写进了提交记录。Claude Code 这个案例的特殊之处在于,泄露不是攻击者精心构造的,而是正常使用流程里的设计缺陷造成的。也就是说,风险面更广,普通开发者一不留神就可能中招。
Anthropic 的回应与开发者自救
到报道发稿时为止,Anthropic 还没有发布完整的事故说明。Ars Technica 联系了该公司,没有拿到即时置评。社区里已经有开发者在呼吁 Claude Code 增加提交前的敏感信息扫描、限制「不再询问」的适用范围,并在检测到疑似密钥时强制二次确认。
对已经在用 Claude Code 的开发者,安全建议有这么几条:马上审查近期的提交历史,用或 GitHub secret scanning 工具排查泄露;轮换所有可能已经暴露的密钥;在项目层面配置预提交钩子,拦住含高熵字符串的提交;「不再询问」选项要慎用,尤其是在涉及环境变量和配置文件的场景里。git secrets
自动化工具越强大,权限边界越需要被审慎定义。效率与安全之间的平衡,不能交给一个复选框。
编者按
Claude Code 这次事件给整个 AI 编码工具行业敲响了警钟。AI 代理被赋予越来越多自主权,产品设计里每一个「便利性」决策都可能成为安全链条上的薄弱环节。「不再询问」背后是一种信任假设——假设用户清楚自己在授权什么,假设 AI 能正确判断哪些信息敏感。现实是,这两项假设都不可靠。对开发者来说,这次事件提醒我们:享受 AI 带来的效率红利时,对关键操作的最终审查权还得留在自己手里。对工具厂商来说,安全不能是事后补丁,而应该内嵌到交互设计的每一个细节之中。