生态系统不同,目标不同,攻击者可能也不同。目标却是一致的:在开发者的工作环境中运行恶意代码,然后窃取凭据。
活动一 — Megalodon:5,561 个 GitHub 仓库在六小时内被植入后门
2026 年 5 月 18 日,一场自动化攻击在六小时内向 5,561 个 GitHub 仓库推送了 5,718 个恶意提交。发现该活动的 SafeDep 将其追溯到两个一次性邮箱地址和四个伪造的机器人身份。提交信息伪装成常规的 CI 维护工作:"ci: add build optimization step"。每个恶意提交都注入了一个 GitHub Actions 工作流,其中包含一个 base64 编码的 bash 有效载荷,用于向 C2 服务器窃取 CI 密钥、云凭据、SSH 密钥、OIDC 令牌和源代码密钥。
活动采用了两种变体:一种是大规模变体,在每次推送时触发;另一种是有针对性的 Optimize-Build 变体,它会替换现有工作流并等待手动触发——一种按需激活的休眠后门。OX Security 独立确认了 3,500 多个受感染仓库。
活动二 — Laravel-Lang:通过 Git 标签重写污染了 700 多个软件包版本
2026 年 5 月 22 日至 23 日,攻击者重写了四个 Laravel-Lang Composer 软件包中 700 多个历史版本的 Git 标签。有效载荷会对机器进行指纹识别,连接到 C2 域名,然后获取一个 PHP 凭据窃取程序。目标涵盖所有主流平台上的 AWS/GCP/Azure 密钥、Vault 令牌、SSH 密钥、浏览器凭据、密码管理器和加密货币钱包。
活动三 — TrapDoor:跨生态系统加密货币窃取攻击波及 npm、PyPI 和 Crates.io
从 5 月 22 日开始,Socket 研究人员检测到同时在三个软件包仓库展开的协同攻击:34 个恶意软件包和 384 个版本,全部伪装成开发者工具或 DeFi 工具。执行路径针对每个生态系统量身定制:npm 上的 postinstall 钩子、PyPI 上的导入时执行,以及 Crates.io 上编译时的 build.rs。
npm 有效载荷更进一步:通过 AWS 和 GitHub API 验证窃取的凭据,尝试 SSH 横向移动,并通过 .cursorrules 和 CLAUDE.md 植入持久化后门——试图向 AI 编码助手注入指令,将窃取行为伪装成"安全扫描"。攻击者还向 LangChain、browser-use、LlamaIndex 和 Gemini CLI 提交了 PR,建议添加这些相同的文件。
活动四 — Miasma:Mini Shai-Hulud 回归,攻击 32 个 Red Hat npm 软件包
2026 年 6 月 1 日,96 个版本横跨 32 个 @redhat-cloud-services npm 软件包遭到入侵。一个 Red Hat 员工的 GitHub 账户被盗用,恶意孤立提交被推送,GitHub 的 OIDC 信任发布机制被滥用,在无需任何 npm 凭据的情况下发布植入后门的版本。每个软件包都会触发一个 preinstall 钩子,收集 GitHub Actions 密钥、AWS/GCP/Azure 凭据、Vault 令牌、Kubernetes 令牌、SSH 密钥和 .env 文件。
Miasma 是 Mini Shai-Hulud 的直接衍生版本,TeamPCP 于 5 月将其开源,并在 BreachForums 上发帖鼓励他人复制。这是首次确认该开源行为产生了企业级规模的攻击。
共同脉络
四次活动,六个生态系统,一个目标。 攻击面在每次活动中都有变化。目标没有变:从开发者和流水线所在的位置提取凭据。
这些攻击都无需使用零日漏洞。它们找到了一个可入侵的开发者账户、一个可植入后门的可信软件包、一个可滥用的构建流程,或一个可重写的标签系统。在每种情况下,恶意组件都在凭据可及的运行环境中执行,而安全团队对此毫无察觉。
现在每个受影响团队应该问的问题不仅仅是"这个软件包是否在我的环境中运行过?",还包括:如果它运行了,它能访问什么?那些凭据是否已被轮换?
了解您的密钥实际存储在哪些位置——跨越仓库、CI 配置、环境变量和开发者机器——才能及时回答这个问题。