首页/文章/打开陌生仓库就可能丢 Claude 凭据:.vscode/tasks.json 自动运行的「字体文件」窃取程序

打开陌生仓库就可能丢 Claude 凭据:.vscode/tasks.json 自动运行的「字体文件」窃取程序

· Zumac.Ai

帖子说了什么

@santhosh_patell 提醒:如果你常在 Cursor 或 VS Code 里打开陌生的 GitHub 仓库,今天就该检查一个文件。一批老仓库被加进了 .vscode/tasks.json,里面有个叫 eslint-check 的任务,打开文件夹就会自动运行,而且是隐藏执行、不弹终端。它运行的是 public/fonts/fa-solid-400.woff2,看起来是字体,实际是一段 JavaScript。

安全研究报告怎么说

对照 OpenSourceMalware 的分析:

  • 这是 GhostAction 攻击活动的第二阶段,研究者发现了 94 个被入侵的仓库。
  • 触发方式是 VS Code 任务的 runOn: folderOpen,这是正常功能,没有可以打补丁的漏洞,也不需要安装任何包。
  • 这段 JS 会读取 ~/.aws/credentials、~/.npmrc、~/.git-credentials、SSH 私钥,以及 ~/.claude/.credentials.json 和 Gemini 的 OAuth 文件;还会在主目录里搜索 sk-ant- 开头的 Anthropic API key,并收集名字以 ANTHROPIC、_API_KEY、_TOKEN 等开头的环境变量。
  • 它还会写入一条每 5 分钟执行一次的 cron 定时任务,运行攻击者服务器下发的内容。删掉仓库并不会清除这个定时任务。

原帖还提到:VS Code 只在你信任过的文件夹里运行这类任务;Cursor 的文档写着 Workspace Trust 默认关闭。这一点以各编辑器的官方说明为准。

Claude 的登录凭据存在哪

对照 Claude Code 官方 Authentication 文档:macOS 默认存在加密的系统钥匙串里,但钥匙串写不进去时(比如在 SSH 会话里被锁住)会退回到 ~/.claude/.credentials.json;Linux 和 Windows 直接存在 .credentials.json 文件里。所以 Linux 服务器、Windows 机器和通过 SSH 登录过的 Mac,都可能有这个文件。

自查和防护

  1. 查定时任务:crontab -l | grep ghc2,有结果就说明中招了。
  2. 查代码目录:grep -rl --include=tasks.json folderOpen ~/code(换成你放代码的目录),逐个看命中的任务在运行什么。
  3. 打开陌生仓库前先看 .vscode/,在编辑器里开启并使用工作区信任(Workspace Trust / Restricted Mode)。
  4. 怀疑中招就全部轮换:在 Claude 里 /logout 后重新登录;去 Console 吊销并重建 API key;同时轮换 GitHub、云厂商、npm 等凭据,并清除那条定时任务。
  5. API key 不要明文散落在主目录:这类窃取程序会直接搜 sk-ant- 前缀。

如果你想让 Claude Code 跑在一台常开、整机独享的新加坡 Mac mini 上,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服