对防御方来说,公开源码意味着可以深入分析攻击细节;但对攻击者而言,这也极大降低了复制类似攻击的门槛。
Shai‑Hulud 之所以受到关注,很大程度上在于其攻击速度和规模。
2026 年 5 月 11 日,与 TeamPCP 相关的攻击者在短时间内向 npm 和 PyPI 发布了大量被篡改的软件包版本,在几个小时内就传播到多个开发生态。
与传统依赖投毒不同,这次恶意软件具备 自传播能力(worm):一旦开发者安装受感染包,它就可以利用获取到的凭证继续污染更多软件包。
不久之后,研究人员发现 TeamPCP 又在 GitHub 上 发布了两个包含完整源码的仓库,并使用 MIT 许可证授权。这种许可证允许几乎无限制地复制、修改和再发布代码。
仓库很快被 fork 数十次,显示攻击工具一旦进入开源生态,就可能迅速扩散。
公开恶意软件并非新鲜事,但 以宽松开源许可证发布攻击工具仍然相对少见。
对安全防御人员而言,这带来了几个重要价值:
但同样的透明度也对攻击者有利。MIT 许可证允许任何人 fork 并修改代码,这意味着:
更大的问题在于:Shai‑Hulud 展示了一种可复制的攻击模式——针对开发流程本身,而不是单个漏洞。
根据多家安全机构分析,这个蠕虫结合了多种供应链攻击技术。
该蠕虫最关键的能力之一,是 从 CI/CD 构建流程中窃取 OpenID Connect(OIDC)令牌,尤其是 GitHub Actions 的发布工作流。
与传统攻击依赖静态凭证不同,攻击者直接从运行中的 CI 任务中获取临时令牌,从而能够 以合法发布流程的身份发布恶意软件包。
现代软件供应链安全中,一个重要概念是 构建来源证明(provenance),例如 SLSA(Supply‑chain Levels for Software Artifacts)。
然而在这次攻击中,研究人员发现部分恶意包 仍然携带 SLSA Level 3 的有效来源证明。
这意味着:
即使自动化系统验证了签名和构建来源,也可能仍然信任被劫持的构建流程生成的恶意软件。
当恶意包被安装后,蠕虫会部署凭证窃取模块,从开发环境和 CI 系统中搜集敏感信息,例如:
安全报告指出,该恶意软件会扫描 100 多个常见凭证存储路径。
一旦获得新的发布凭证,蠕虫可以自动发布更多被感染的软件包,从而在 npm 与 PyPI 生态中形成 级联式传播。
这也是它被称为“供应链蠕虫”的原因。
部分分析还指出,代码中可能包含 破坏性 fail‑safe 机制(类似 dead‑man’s switch),在特定条件触发时可能删除或破坏系统数据。
因此安全专家建议:
一旦环境安装过相关恶意包,应按“完全沦陷”来处理,而不是简单删除依赖。
2026 年 5 月的事件并非孤立事件。
云安全联盟研究显示,在 2026 年 4 月 29–30 日,TeamPCP 已经发动过一次跨生态供应链攻击,影响 npm、PyPI 和 Packagist,涉及约 1800 个仓库。
两次攻击之间可以看到明显的技术升级:
这表明攻击者正在快速适应新的供应链安全防御措施。
如果组织在攻击窗口期间安装过受影响的软件包,风险可能不仅仅是依赖被污染。
安全机构建议:
任何安装过这些包的开发环境或 CI 构建节点都应被视为潜在已被攻破。
原因是蠕虫会窃取凭证并在开发系统中持续存在。
另一个重要教训是:
即使软件包具有签名或来源证明,也不一定安全——如果构建流程本身已被劫持。
安全团队在排查潜在暴露时,通常建议优先采取以下行动:
同时,安全团队还需要持续监控新的变种,因为 蠕虫源码公开后,很可能出现改造版或模仿攻击。
Shai‑Hulud 事件揭示了供应链攻击的一个明显趋势:
攻击者正在把目标从“单个依赖漏洞”转向 开发流程本身——CI/CD、自动发布和开发者凭证。
通过开源导致大规模攻击的蠕虫代码,TeamPCP 实际上把一次真实攻击变成了一份公开的“攻击蓝图”。如今,安全行业和攻击者都可以研究这份蓝图,而围绕它的攻防竞赛已经开始。