2026 年 11 月,Ars Technica 记者 Kyle Orland 记录了一起让开发者社区心里发紧的安全事件:Anthropic 旗下 AI 编码工具
Claude Code 正在 GitHub 上误泄大量敏感信息,密码、API 密钥、访问令牌都在其中。追根溯源,问题不在什么复杂的漏洞利用,而落在一个看着无害的交互设计上——“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 提交的内容有明确的审查意识,一般会在.gitignore里把敏感文件排除掉,或者借助密钥管理工具。AI 编码助手一进来,这个习惯就变了。Claude Code 这类工具是按“自主代理”的方式干活,能读项目文件、生成代码、执行 Git 命令。用户为图效率选了“不再询问”,等于把安全审查的一部分权力交给了 AI。
更深一层的问题在上下文边界。AI 模型生成代码时要读环境变量、配置文件,甚至本地密钥库,这些内容一旦进了模型上下文,后续输出里就可能被复现。模型要是判断该把配置写进代码、好“让项目跑起来”,敏感信息就顺着进了版本历史。安全专家表示,这不是 Claude Code 一家的毛病,所有有文件系统和命令执行权限的 AI 代理工具都得面对。
行业背景:AI 代理的权限困境
2025 年以来,AI 编码助手从“代码补全”一路快跑变成“自主代理”,Cursor、GitHub Copilot、Claude Code 等工具陆续获得了读取项目、运行测试、提交代码的能力。效率上去了,权限模型却没跟上。多数工具走的是“首次询问、后续信任”的路子,这跟最小权限原则天生别扭。
这种事也不是头一回。此前有研究团队演示过用提示注入诱导 AI 代理泄露环境变量,也有开发者在社交媒体上反映 Copilot 把本地配置写进了提交记录。Claude Code 这回特殊在哪?泄露不是攻击者精心构造出来的,而是正常使用流程里的设计缺陷造成的。风险面因此更宽,普通开发者一个不留神就可能中招。
Anthropic 的回应与开发者自救
到报道发稿时,Anthropic 还没给出完整的事故说明。Ars Technica 联系过该公司,没有拿到即时置评。社区里已有开发者提出,Claude Code 应当增加提交前的敏感信息扫描、收窄“不再询问”的适用范围,一旦检测到疑似密钥就强制二次确认。
已经在用 Claude Code 的开发者,安全建议有这么几条:马上翻一遍近期的提交历史,用git secrets或者 GitHub secret scanning 工具排查泄露;把所有可能暴露的密钥轮换掉;在项目层面配好预提交钩子,拦住含高熵字符串的提交;“不再询问”这个选项要慎用,涉及环境变量和配置文件的场景尤其如此。
自动化工具越强大,权限边界越需要被审慎定义。效率与安全之间的平衡,不能交给一个复选框。
编者按
Claude Code 这一出,给整个 AI 编码工具行业提了个醒。AI 代理手里的自主权越来越多,产品设计里每个图“便利”的决定,都可能变成安全链条上最松的那一环。“不再询问”背后其实是一种信任假设——假设用户清楚自己在授权什么,也假设 AI 能正确判断哪些信息敏感。可现实是,这两个假设都靠不住。对开发者来说,这事提醒我们:享受 AI 带来的效率红利时,关键操作的最终审查权还得攥在自己手里。对工具厂商来说,安全不该是事后打的补丁,而要嵌进交互设计的每个细节里。