帖子说了什么
@santhosh_patell 提醒:如果你常在 Cursor 或 VS Code 里打开陌生的 GitHub 仓库,今天就该检查一个文件。一批老仓库被加进了 .vscode/tasks.json,里面有个叫 eslint-check 的任务,打开文件夹就会自动运行,而且是隐藏执行、不弹终端。它运行的是 public/fonts/fa-solid-400.woff2,看起来是字体,实际是一段 JavaScript。
安全研究报告怎么说
- 这是 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,都可能有这个文件。
自查和防护
- 查定时任务:
crontab -l | grep ghc2,有结果就说明中招了。 - 查代码目录:
grep -rl --include=tasks.json folderOpen ~/code(换成你放代码的目录),逐个看命中的任务在运行什么。 - 打开陌生仓库前先看
.vscode/,在编辑器里开启并使用工作区信任(Workspace Trust / Restricted Mode)。 - 怀疑中招就全部轮换:在 Claude 里
/logout后重新登录;去 Console 吊销并重建 API key;同时轮换 GitHub、云厂商、npm 等凭据,并清除那条定时任务。 - API key 不要明文散落在主目录:这类窃取程序会直接搜
sk-ant-前缀。
如果你想让 Claude Code 跑在一台常开、整机独享的新加坡 Mac mini 上,可以了解 Zumac.Ai,咨询 Telegram @singatao。
