与传统供应链攻击不同,这次攻击并没有通过盗取单个维护者账号来发布恶意版本,而是直接入侵开源项目的 自动化发布流水线(CI/CD)。
在 2026年5月11日至12日 的主要攻击波中,攻击者成功:
由于恶意包是通过 合法发布管道生成并签名 的,它们甚至携带了有效的构建来源证明(provenance attestations),这让许多自动化安全检查难以及时识别问题。
本次攻击最明显的受害者之一是 TanStack —— 一个广泛使用的 JavaScript 开源生态,包含 React Query、TanStack Router 等开发者常用库。
在短短几分钟内,攻击者通过项目的正式发布流程,在 npm 上发布了:
@tanstack/* 包当开发者安装这些版本时,npm 生命周期钩子(如 preinstall)会触发恶意脚本,从远程服务器下载并执行凭据窃取程序。
随后研究人员发现,攻击很快扩散到更广泛的开发者生态:
这使 Mini Shai‑Hulud 成为 2026 年最广泛的开源供应链攻击之一。
恶意包利用包管理器的标准钩子机制,在开发者安装依赖时执行代码。
一旦执行,恶意程序会尝试从本机系统收集各种开发者凭据。研究人员观察到它会重点搜索:
攻击者随后可以利用这些凭据进一步入侵其他代码仓库或发布新的恶意包,使蠕虫 在开发者基础设施中自动传播。
在这次大规模攻击期间,恶意的 TanStack npm 包曾被安装到 OpenAI 企业环境中的两台员工设备上。
OpenAI表示攻击者在这些设备上进行了:
但公司调查结果显示:
公开报道并未披露具体感染路径,也没有说明是哪一个具体 TanStack 包版本触发了问题。
作为应对措施的一部分,OpenAI更新了其 macOS应用的Apple Developer签名身份,并发布了新的企业安全配置指南。
关键点包括:
2DC432GLL2对于启用了 macOS 应用白名单或设备管理策略的企业来说,需要确保信任 新的 OpenAI 签名身份。
这次攻击揭示了现代软件开发中的一个重要问题:自动化发布系统本身正在成为攻击目标。
与传统攻击不同,Mini Shai‑Hulud主要利用:
因此,即使软件包带有合法签名或构建证明,也可能在 构建流水线被入侵时成为恶意软件。
在最大攻击波结束时:
检查该时间窗口内的构建记录和依赖安装日志,确认是否安装过受影响的 TanStack 包版本。
如果发现安装过恶意版本:
由于恶意程序会窃取凭据,应轮换所有可能暴露的密钥,例如:
检查 CI/CD 管道配置,确保 OIDC trusted publishing 权限被严格限制。
企业设备管理或安全策略需要确认信任 OpenAI新的应用签名身份,避免旧证书配置导致安全策略失效。
Mini Shai‑Hulud展示了现代攻击的一个重要趋势:攻击者越来越多地 直接攻击开发者工具链。
通过入侵构建系统和依赖生态,攻击者可以在开发流程的上游注入恶意代码,从而影响大量下游项目。
更令人警惕的是,本次攻击证明:
即使软件包带有合法签名和完整的构建来源证明,也无法完全保证其安全性——只要构建流水线本身被攻破。
对于高度依赖开源生态的团队来说,持续监控依赖更新、隔离构建环境以及快速轮换凭据,已经成为软件安全的基本要求。