当所有人盯着 LiteLLM 时,另一场更安静的战役在五周里做了更坏的事:用偷来的 GitHub 令牌,往每一个够得着的仓库里提交一个窃取密钥的工作流。这个行动叫 Gheist,涉及 850 多个被盗账号、13500 个被种下的分支,个人项目和企业私有仓库都在其中。工具枚举令牌能碰到的所有仓库,新建一个 ci-sync-XXXXXX 分支,以「ci: sync config」为提交信息、不带签名地写入一个只有两行的 workflow:把 env 和 toJSON(secrets) 做 base32 编码后打进日志,然后用 API 取回日志、删除这次运行。四个细节值得记牢:base32 让 GitHub 的密钥掩码失效,因为掩码只认逐字出现的值;permissions: {} 保护的是自动生成的 GITHUB_TOKEN,管不到 secrets 上下文;工具会枚举部署环境,把通常只在生产用的密钥也打印出来;全程没有外部 C2,数据从 GitHub 自己的 API、自己的 IP、用你签发的令牌出去。