Key Takeaways:
- 一种名为“Mini Shai-Hulud”的新型供应链攻击已导致 170 多个知名的 npm 和 PyPI 软件包受损,累计下载量超过 5.18 亿次。
- 该恶意软件被归因于威胁组织 TeamPCP,利用偷取的云提供商密钥、加密货币钱包和 GitHub 令牌等广泛凭据进行自我传播。
- 对 TanStack 软件包的攻击尤为显著,它滥用 OIDC 令牌和 GitHub Actions 发布带有有效 SLSA 源自证明的恶意版本,这在 npm 蠕虫中尚属首例。
Key Takeaways:

一种名为“Mini Shai-Hulud”的复杂蠕虫病毒在广泛的供应链攻击中破坏了 npm 和 PyPI 注册表中的 170 多个软件包。此次攻击影响了累计下载量超过 5.18 亿次的项目,并引入了一种绕过安全认证的新技术。
StepSecurity 研究员 Ashish Kurmi 表示:“攻击者利用劫持的 OIDC 令牌,通过项目自身的 GitHub Actions 发布流水线发布了恶意版本。在一次极其罕见的升级中,受损的软件包携带了有效的 SLSA Build Level 3 源自证明,这使其成为首个有案可查的生成有效认证恶意软件包的 npm 蠕虫。”
此次行动被归因于威胁组织 TeamPCP,已影响了 42 个 TanStack 软件包、65 个来自 UiPath 的软件包,以及来自 Mistral AI、OpenSearch 和 Guardrails AI 的其他软件包。TanStack 受损事件(CVE-2026-45321)被评为严重,CVSS 评分为 9.6。该事件涉及利用 pull_request_target 配置错误和缓存投毒进行的链式攻击,旨在从 GitHub Actions 运行器的进程内存中提取 OIDC 令牌,从而允许攻击者在不窃取 npm 令牌的情况下发布软件包。
攻击者能够为恶意软件包生成有效的 SLSA 源自证明,这削弱了人们对旨在保护软件供应链的系统的信任。这一事件向 GitHub 等平台和 npm 等注册表施加了压力,要求其解决 CI/CD 流水线中的架构缺陷,因为财务和运营风险现在已扩展到任何使用受损维护者依赖项的项目,可能影响价值数十亿美金的软件价值。
此次攻击的核心是一个多阶段凭据窃取程序,通常嵌入在名为“router_init.js”的混淆 JavaScript 文件中。恶意软件对受害者的环境进行广泛分析,以窃取各种敏感信息,包括云提供商的凭据、加密货币钱包、AI 工具和即时通讯应用。根据安全公司慢雾(SlowMist)的说法,该蠕虫专门设计用于窃取 CI/CD 密钥和加密钱包信息。
数据通过多个渠道被盗取,包括一个使用注重隐私的 Session 消息服务来规避检测的域名 (filev2.getsession[.]org)。作为备选方案,被盗数据还会提交到攻击者控制的 GitHub 仓库中。该恶意软件还在 VS Code 等流行代码编辑器中建立持久化,以在重启后存活。
在受损的 guardrails-ai 和 mistralai 软件包中发现的 Python 变体,会从远程服务器获取针对 1Password 和 Bitwarden 等密码管理器的有效负载。微软的分析指出,该变体包含一个破坏性分支,有六分之一的几率删除看起来位于以色列或伊朗的系统上的所有文件。
使 Mini Shai-Hulud 蠕虫特别危险的原因在于它的自我传播能力。恶意软件利用窃取的 GitHub OIDC 令牌铸造新的 npm 发布令牌,从而允许其发布由受损开发者维护的其他软件包的恶意版本。这种技术绕过了对传统身份验证或双因素身份验证的需求,造成了快速传播的威胁。
攻击者已经自动化了这一过程,创建了 400 多个恶意仓库,描述为“Shai-Hulud: Here We Go Again”,这是对《沙丘》系列的致敬。该蠕虫伪造提交作者,使其看起来像合法的应用程序,进一步掩盖其活动。
安全研究人员建议所有开发者检查是否有任何受损的软件包版本进入了其环境,更换所有可能暴露的凭据,并审核其 GitHub Actions OIDC 配置是否存在安全弱点。
本文仅供参考,不构成投资建议。