1122份配置文件在GitHub裸奔,源头是那句“不再询问”

源自94位全网作者

11:12

终端弹出一行询问,你顺手按了「Yes, and don’t ask again」。清净了。

但那条命令——连同里面那串数据库密码——已经被原样写进项目里的 `.claude/settings.local.json`。

安全公司 Apiiro 在 11 月 5 日发布研究:公开 GitHub 上躺着 104,185 份这种文件,其中 1,122 份明文存着真密钥,算上 git 历史、共享配置和对话记录,一共 2,539 个密钥、1,994 个仓库、63 家组织。漏的东西不轻:光数据库密码就 379 个,另有 122 个 Supabase 密钥、23 个 AWS 密钥,以及多个 SSH root 登录口令。微博小红书微博小红书

1122份配置文件在GitHub裸奔,源头是那句“不再询问”

机制一点都不神秘

你让 Claude Code 连数据库、调接口,它拼出来的命令里本来就带着口令——不带跑不起来。它问你要不要允许,你选「不再询问」,整条命令就成了一条 allow 规则。

1122份配置文件在GitHub裸奔,源头是那句“不再询问”

要命的是下一步:Claude Code 只把这个文件加进你这台机器的全局 git 忽略,不写进项目自己的 `.gitignore`。换电脑、仓库后来才初始化、文件早就被提交过——三种情况全漏。已经进了索引的文件,事后往 `.gitignore` 里补一行也拦不住。更别扭的是,Claude Code 其实能察觉到这个文件已经被跟踪,却不告诉你。微博小红书知乎

最扎心的是这个

1,122 份含密钥的文件里,gitleaks 找出 564 份,TruffleHog 找出 643 份,有 215 份两个都没报。不是扫描器太菜。它们按密钥格式识别——固定前缀、固定长度、固定字符集。而 `PGPASSWORD=` 后面那串,在扫描器眼里就是个普通单词。行业公认的防线,对最常见的泄露形态反而最不敏感。小红书微博

还有个细节:在追溯过提交历史的 1,105 个含密钥仓库里,539 个的提交中有 Claude 参与,并改过这个文件。大概率是它自己顺手 commit 上去的。知乎微博

这些密码也不是刚漏的——有一半,已经在公开仓库里躺了超过 217 天。小红书

但也别急着恐慌

含密钥的文件只占扫描总量的约 1%。真正的风险要两个条件同时成立:存的规则里确实有明文密钥,并且这文件被提交、公开或分享了出去。批准带通配的命令模式(比如 `Bash(npm run:*)`)时,存进去的只是模式,不含密钥。Anthropic 这边也回应了。Claude Code 负责人 Boris Cherny 在 Hacker News 上说,团队在研究怎么防这类问题,包括让 auto mode 识别、内置基础的密钥扫描。Apiiro 并没有逐个验证这些密钥今天还能不能登录,目前能确认的是:被通知的公司里,有一家承认自家密钥当时仍然有效。微博知乎小红书微博

现在就去做的四步

一、翻文件。 打开项目里的 `.claude/settings.local.json`,看 allow 规则里有没有明文密码、token、私钥。看归看,别把内容贴到任何公开地方。

二、先轮换,再清理。 顺序不能反。删文件也没用,git 历史、fork、克隆里都还压着。知乎微博小红书

三、停止跟踪。 `git rm --cached .claude/settings.local.json`,再把这条路径写进项目自己的 `.gitignore`。注意这条命令只从索引移除文件、保留本地文件,不会清除 git 历史。要清历史得用 `git filter-repo` 重写,会牵动所有克隆和 fork,动手前先跟团队打招呼。微博

四、改习惯。 命令里用变量(`$DB_URL`)代替明文,授权批模式而不是整条带密文的命令。小红书

1122份配置文件在GitHub裸奔,源头是那句“不再询问”

说到底,这不是谁攻破了 Claude Code。是一个图省事的开关,把「授权记忆」变成了新的攻击面。

内容由AI生成

精选参考来源

1. 据安全公司 Apiiro 11 月 5 日发布的研究,Claude Code 的“Don't Ask Again”功能会把含密码或 API 密钥的命令明文写入项目里的 .claude/settings.local.json,扫描发现 Git

2. 点了“别再问我”,密码被AI公开了

3. 用Claude Code点过“Yes, and don't ask again”的,回去翻一下项目里的 .claude/settings.local.json它会把你批准的那条命令原样存下来,命令里带的密码、token也一起明文存。Apii

4. 一键放行 2539 个密钥上天 🔑

5. 「不再询问」存的是批准规则,不是必然存密钥。Claude Code 点「Yes, and don't ask again」,会把该次提示里的命令写成 allow 规则,写进项目的 .claude/settings.local.json。批准

6. 你的密码,正躺在AI配置文件里

7. Claude Code settings.local.json 泄露密码怎么办:Don't ask again 写进项目文件,怎么查、怎么清、怎么防

8. 「“别再问”那一下,把密码写进了公开仓库」Apiiro 最近扫了公开 GitHub 上 10.4 万份 .claude/settings.local.json:104185 份里有 1122 份明文存着真密钥。算上历史提交、共享配置和 ag

9. 官方:点一下泄露2539个密钥!

10. 用过 Claude Code、点过「以后别再问了」的注意:你敲进命令里的数据库密码,可能已经明文躺在公开 GitHub 上。三点先记牢:1. 你点「Yes, and don't ask again」,Claude Code 会把这条批准写进

11. 吓人的不是 Claude Code「会写命令」,是你点了「Yes, and don’t ask again」之后,整条带密码的命令被原样写进 .claude/settings.local.json。Apiiro 在公开 GitHub 里扫到

12. 检查 Claude Code 的批准规则里,有没有明文密钥。官方文档确认:对 Bash 等操作选择「Yes, and don't ask again」并永久保存批准时,规则会写入 .claude/settings.local.json;不是

13. 怎么看 Apiiro 表示 Claude Code 会把用户密钥信息写入 .claude 导致泄漏?

14. Claude Code被曝泄露密码

15. 你在终端被问过一句「Yes, and don't ask again」吗?点它的人可能顺手把公司数据库的密码交出去了。安全公司 Apiiro 在 11 月 5 日发布的扫描报告里数出:GitHub 上有 1122 个公开文件里躺着真实密钥。

16. settings.local 泄密 + Codex alpha.3:同步税之外,还有「委派≠共享」与「公示≠企标」

0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章