Claude Code「不再询问」设置文件泄露1122个密钥:风险与应对

Claude Code「不再询问」配置文件在GitHub泄露1,122份明文密钥,波及63个组织。
Claude Code 的「不再询问」功能会把用户批准过的 shell 命令原样写入 .claude-settings.local.json,若命令中含密钥便形成明文落盘。研究者扫描 GitHub 发现 104,185 份该文件,其中 1,122 份含至少一个密钥,共 1,379 个不同凭证,涵盖数据库密码、SSH 凭证、仓库令牌和 AWS 密钥,关联 63 个组织。根源是该文件只被加入全局 Git 忽略列表而未进入项目 .gitignore,容易随提交、fork 和打包产物扩散。文章同时梳理了 WordPress、OpenSSH 等漏洞的时间线,指出 AI 驱动的漏洞发现正在压缩防御窗口,并给出轮换密钥、清除历史、加固更新流程和收缩代理权限等应对建议。
Claude Code「不再询问」设置文件泄露1122个密钥:风险与应对
AI编程助手在提升开发效率的同时,也带来了新的安全盲区。据YouTube安全频道披露,有研究者发现Claude Code的「不再询问」(Don't Ask Again)配置文件在GitHub上存在大量泄露,其中至少1,122个文件包含明文密钥。这一事件揭示了AI代理工具在权限记忆与文件管理设计上的潜在风险。
据该频道援引的研究数据,一名被称作「A pyro」的研究者在GitHub上扫描到104,185份.claude-settings.local.json文件,分布在103,617个代码仓库中,其中1,122份被标记为至少包含一个密钥。这些密钥涵盖数据库密码、SSH登录凭证、API令牌和AWS密钥。

问题根源:便利性设计埋下隐患
Claude Code在大多数shell命令执行前会向用户请求确认。当用户点击「是,不再询问」后,该命令会被逐字保存在.claude-settings.local.json中。问题在于,如果用户在命令中直接输入了密钥,这些敏感信息就会以明文形式写入该文件。
据分析,这一行为属于产品设计的一部分。客户端会将该文件加入用户的全局Git忽略列表(Global Git Excludes),但并不会将其加入项目本身的.gitignore。这意味着,当开发者提交项目文件时,该配置文件仍可能被意外纳入版本控制。
研究者指出,在Opus 5.5和Fable 5.1上复现了这一行为。由于文件可能存在于仓库历史、分支副本(fork)和打包产物中,单次已批准的指令就可能造成持久性凭证泄露。
全局 Git 忽略列表与项目 .gitignore 的区别
Git 的忽略机制分为两个层级:项目级的 .gitignore 文件随仓库一起分发,作用于该仓库内的所有协作者;而全局忽略列表(Global Git Excludes,通常位于 ~/.config/git/ignore 或由 core.excludesFile 指定)只对当前用户本机生效,且不会被提交到任何仓库。Claude Code 把配置文件写入全局忽略,只能防止该用户在自己的机器上误提交,却无法约束其他克隆仓库的人,也无法阻止 git add -f、打包工具或 CI 脚本将该文件纳入产物。这正是泄露规模远超预期的结构性原因:开发者主观上以为「已经被忽略了」,实际上保护范围仅限本机。
泄露规模与影响范围
据该频道统计,在已标记的文件中,共发现1,379个不同的密钥。其中379个为数据库密码,其余包括43个SSH登录凭证、42个仓库令牌和23个AWS密钥。许多文件在默认分支上留存了数月之久。
Appiero的追踪显示,受影响文件关联到63个组织。打包产物可能暴露下游系统,即使原始仓库已被删除。这意味着风险不仅限于开发者本人的机器,还可能波及使用相关软件包或镜像的下游用户。

该频道将此次事件的编辑评估定为「高」级别,依据包括:已确认的明文密钥可解锁数据库和云账户;文件在默认分支和分支副本中持续留存;以及相关攻击向量上存在活跃的利用活动。
分支副本(fork)与打包产物为何放大风险
在 GitHub 上 fork 一个仓库会复制包括提交历史在内的全部内容,原仓库后续删除文件并不会同步清除已经存在的 fork;同理,历史提交中的 blob 对象即使从默认分支移除,仍可通过 git log 或悬空对象找回。打包产物(npm tarball、Docker 镜像层、构建缓存)则把文件从源码仓库带入下游依赖链,使下游用户在完全不知情的情况下继承了凭证。因此「删除文件」必须覆盖三个层面:当前分支、完整提交历史(需 git filter-repo 等工具重写)以及已发布的制品,否则泄露面依旧存在。
与其他漏洞的时间线交织
该事件并非孤立发生。据同一来源梳理的时间线,研究者于2025年8月11日报告了已保存的批准命令问题。同期,WordPress发布了7.1.4版本以修复CVE-2026-11997,随后不久便观测到探测活动。OpenSSH的CVE-2026-123-158在OpenSSH 10.6 P2中完成修补,但利用尝试在数小时内即出现。
在OpenSSH方面,有蜜罐记录了确认的root权限获取。WordPress的修复随机化了临时升级文件夹名称,但在某些场景下更新程序仍会解包现有站点代码,留下短暂暴露窗口。微软Paint的修复通过Microsoft Store以build 11.2609.401.0提供,而非通过Windows Update推送。
该频道同时指出,Apiro并未逐一测试每个密钥的有效性,但有一家被通知的公司确认了其密钥处于活跃状态。Forever Security在实验室测试中演示了一种基于dispatch的攻击方式,但未报告在野滥用。

更广泛的趋势:AI加速发现,也加速风险
这一事件折射出更大的行业图景。据该频道引述,OpenAI表示GPT-6 Cyber发现了948个本地Linux权限提升漏洞和81个高危Firefox缺陷。Chainguard的Athena项目自6月以来报告了超过40,000项发现,并警告披露管道已不堪重负。
这意味着防御者面临更多发现和更短的反应窗口。AI工具和自动化代理在加速漏洞发现的同时,也让密钥和代码执行路径出现在更多意想不到的地方。
披露管道过载的含义
漏洞披露依赖一条相对脆弱的链路:发现者 → 厂商安全响应团队(PSIRT)→ 补丁开发 → 协调发布(CNA/CVE 编号)→ 下游分发。当 AI 工具把发现数量提升一到两个数量级时,瓶颈从「发现」转移到了「验证、分诊与修补」,维护者面临大量重复报告和低质量提交,真正的严重问题反而可能被淹没。这也是 Chainguard Athena 等项目强调「披露管道已不堪重负」的原因:发现能力的提升如果不同步提升分诊自动化与补丁产能,实际 risk reduction 会大打折扣。对使用方而言,这意味着从「等待官方通告」转向「基于 SBOM 与资产清单主动自查」更为必要。
实用应对步骤
据该频道的建议,开发者和管理员可采取以下措施:
立即轮换密钥。 对于发现的任何.claude-settings.local.json文件,在清理前先轮换其曾持有的所有密码、令牌和密钥。
审计并移除文件。 从仓库历史、分支副本和打包产物中清除该文件,并检查npm包、Docker镜像和同步文件夹。
加固更新流程。 更新时阻止对wp-content/upgrade的Web访问,或离线更新并验证包类型。
打补丁并监控。 安装OpenSSH 10.6p2或发行版软件包,重启sshd,并检查日志中是否存在本应仅用密钥登录的账户却出现密码接受记录。

收缩代理权限。 禁用或撤销dispatch,最小化代理权限。若无法完全验证主机,应假定已被入侵并启动事件响应。
要点总结
代码助手和跨设备代理正在改变密钥与执行路径的出现位置。先轮换密钥、清除历史,再修补加固更新程序,并降低代理权限。模型驱动的发现正在同时放大信号与风险,对开发团队而言,将AI工具配置文件纳入安全审计范围已刻不容缓。
所有信息来源均指向该YouTube频道的描述栏链接,包括Apiro与Hacker News对Claude Code的报道、Forever Security对dispatch的分析、Providian对OpenSSH漏洞的说明、Umut Bayram对WordPress CVE-2026-11997的追踪、The Hacker News对微软Paint的报道、OpenAI GPT-6 Cyber的覆盖以及Chainguard Athena的相关内容。
相关推荐
科技前沿Textly:Mac上任意位置抓取文字和表格的效率神器
Textly是一款Mac菜单栏效率工具,支持从截图、PDF、视频和应用中框选捕获文字与表格,保持行列完整并导出CSV、Markdown、TSV,还内置即时翻译和剪贴板历史。
科技前沿Frameboy:World Labs Atlas 世界模型浏览器实时体验
World Labs 在 Product Hunt 发布 Frameboy,基于 Atlas 世界模型的浏览器实时演示,移动相机即可在云端 GPU 生成新视角,最高 15 fps 串流,探索 AI 生成的可漫游世界。
科技前沿Keypause:一键锁定Mac键盘,清洁时不再误触
Keypause是一款Mac菜单栏应用,一键锁定键盘所有按键,方便清洁时避免误触。本文介绍其功能、使用体验、潜在风险及适用场景,帮你判断是否值得尝试。