微软安全团队追踪到 ChainDrop 供应链蠕虫通过 GitHub 凭证入侵后直接写入 .claude/settings.json 钩子,Claude Code 每次启动自动执行,绕过凭证轮换实现持久化。
ChainDrop 利用 .claude/settings.json Hook 实现凭证轮换后的持久化
Claude Code 用户必须审查 hook 文件、固定可信配置,并限制仓库写入权限。
ChainDrop 的 .claude/settings.json hooks 在会话启动时自动执行,从而在凭证轮换后依然保持持久化。
Claude Code 用户必须审查 hook 文件、固定可信配置,并限制仓库写入权限。

微软安全团队追踪到了一个名为"ChainDrop"(STUPID-2026-0085)的供应链蠕虫。该蠕虫于 2026 年 8 月 4 日起接管了一个 npm 维护者账户,并发布了含木马的后门版本,影响波及 400 多个包。其 preinstall payload 从开发者环境和 CI/CD 环境中窃取了 npm、GitHub、云平台、HashiCorp Vault 以及 Kubernetes 的凭证。
这件事之所以成为 Claude Code 特有的威胁,是因为该蠕虫使用窃取的 GitHub 凭证,将 .claude/settings.json 和 .claude/setup.mjs 直接提交到受害者仓库的分支中。这一步无需任何开发者操作触发——只要蠕虫对某个仓库有写入权限,就会自动完成提交,与用户是否再次运行 npm install 无关。
Claude Code 会在仓库中启动会话时自动执行 .claude/settings.json 中声明的 hooks。系统不会提示确认 hook 文件是否存在,也不会询问你是否信任其内容。
这是一个合法功能 — 在会话启动时自动执行 hook — 但它建立在这样一个假设之上:任何提交到仓库 .claude/ 目录的内容都是可信的。一旦蠕虫获得了对该仓库的写入权限,就正好可以打破这个假设。
同样的手法也被用于 .vscode/tasks.json,证明这是一种可以泛化到任何会自动执行来自仓库配置的工具的攻击方式。
第一步:审查你当前的仓库
# Find all .claude/settings.json files in your repos
find ~/code -name "settings.json" -path "*/.claude/*" 2>/dev/null
# Check for unexpected hooks
cat ~/code/your-repo/.claude/settings.json
检查是否有执行脚本、curl 命令或引用外部 URL 的 hooks。合法的 hooks 可能运行 linter 或格式化工具 — 而恶意的往往会在后台下载 payload 或外传数据。
第二步:固定可信的 hooks
将以下内容添加到全局 ~/.claude/settings.json 中,以限制 hooks 的行为:
{
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(git status)"],
"deny": ["Bash(curl *)", "Bash(wget *)", "Bash(node setup.mjs)"]
}
}
第三步:打开仓库前验证完整性
# Check for unexpected .claude/ files
git log --all --oneline -- .claude/
git diff HEAD~1 HEAD -- .claude/
第四步:限制写入权限
该蠕虫之所以能够成功,正是因为它拥有对仓库的写入权限。在 CI/CD 中使用只读 token,并审查那些对你不活跃推送的仓库拥有 Contents: Write 权限的 GitHub 细粒度 PAT。
ChainDrop 利用了 Claude Code hook 系统中的一个根本信任假设。该功能很强大 — 但同时也是一个持久化攻击向量。今天就审查你的 .claude/ 目录、固定你的 hook 权限,并将该目录中任何意外的文件视为潜在入侵指标。
[Updated 24 Aug via devto_claudecode]
该蠕虫还在 Claude Code hooks 旁植入了匹配的 .vscode/tasks.json 和 .vscode/setup.mjs 文件,将其持久化扩展到了 VS Code 的任务运行器。微软的分析表明,这证明了该技术可泛化至 Claude Code 之外。同一个攻击活动也被称为 keyv/cacheable 妥协事件,或"Mini Shai-Hulud"。值得注意的是,广泛流传的"从 6943 台机器窃取 294842 个密钥"这一数字无法追溯到一手来源,因此未被纳入官方事件记录。
Originally published on gentic.news
For further actions, you may consider blocking this person and/or reporting abuse