大约在欧洲中部时间下午5点,我们收到警报,Bitwarden/CLI软件包已被入侵,详见 https://opensourcemalware.com/npm/@bitwarden/cli
Jfrog的分析报告位于 https://research.jfrog.com/post/bitwarden-cli-hijack/ ,其中解释了数据窃取主要定向到 audit[.]checkmarx[.]cx。如果受感染机器无法访问该地址,恶意软件会回退到GitHub本身:它从标记为 LongLiveTheResistanceAgainstMachines 的公开提交信息中获取暂存的PAT,通过签署的 beautifulcastle 提交信息发现备用外泄域名,然后在受害者自己的GitHub账户下创建一个仓库,并将加密的凭证数据上传到那里。
基于这些发现,我们在可访问的GitHub仓库中搜索了痕迹。以下是我们的发现。
beautifulcastle
两次针对 beautifulcastle 的提交,指向名为 helloworm00/hello-world 和 helloworm00/my-first-repo 的仓库:
- 2026年4月20日,20:41:43 UTC
- 2026年4月21日,17:53:49 UTC
第二个仓库包含一个新的外泄域名:safely-irc-weblogs-few[.]trycloudflare[.]com
这个外泄域名是有效的。相应的签名可以通过混淆负载中包含的RSA公钥进行验证,但其base64编码形式为84个字符,超出了该字段硬编码的{1,30}上限。在签名被检查之前,该提交就会被正则表达式静默丢弃。
LongLiveTheResistanceAgainstMachines
找到了四次提交;所有GitHub令牌在本文撰写时均已失效。
- 2026年4月21日,22:52:50 UTC
- 2026年4月22日,15:48:27 UTC(同一时间戳的两次提交)
- 2026年4月23日,15:28:47 UTC
一次提交包含一个JSON文档,具有 envelope、key 和 token 键。GitHub令牌已失效。
AI工具投毒
负载会检查PATH中的六个AI编程助手:Claude Code、Gemini CLI、Codex CLI、Kiro CLI、Aider和OpenCode。它通过以其原生调用语法运行一个单条消息来同时探测所有六个:"Hey! Just making sure you're here. If you are can you respond with 'Hello' and nothing else?"(嘿!只是想确认你在。如果你收到了能回复'Hello'且不回复其他内容吗?)负载选择第一个回复Hello的工具;其余的将被忽略。Claude Code使用 --no-confirmation 调用,压制任何交互式批准提示,使探测静默运行。
一旦负载找到一个活跃的工具,它会向 ~/.bashrc 和 ~/.zshrc 各追加一个大约3500字节的反AI宣言文本heredoc块。
初始访问向量:通过Dependabot的KICS
一个已确认的受害者环境显示,攻击始于2026年4月22日的Checkmarx KICS Docker镜像被入侵。Dependabot在自动化依赖更新期间拉取了被植入木马的 checkmarx/kics:latest 标签,在CI环境中执行了负载,并获得了仓库密钥的访问权限。
这确认了TeamPCP在整个攻击波次中使用的跨活动支点攻击模式:入侵一个可信的CI工具,获取runner凭证,使用这些凭证进一步传播。Dependabot向量特别危险,因为它自动运行,通常具有提升的权限,且很少受到与开发者触发的workflow运行同等的审查。GitGuardian建议对依赖更新应用冷却期(https://blog.gitguardian.com/renovate-dependabot-the-new-malware-delivery-system/)。