Shai-Hulud v2攻击活动从npm蔓延至Maven,暴露数千机密凭证
供应链攻击Shai-Hulud的第二波攻势已从npm注册表蔓延至Maven生态圈,此前该攻击已危害npm注册表中超过830个软件包。
Socket研究团队表示,他们发现Maven中央仓库中名为org.mvnpm:posthog-node:4.18.1的软件包嵌入了与Sha1-Hulud相同的两个组件:“setup_bun.js"加载器和主载荷"bun_environment.js”。
这家网络安全公司在周二更新的报告中指出:“这意味着PostHog项目在JavaScript/npm和Java/Maven生态系统中都发布了受感染的版本,这些版本都由相同的Shai Hulud v2载荷驱动。”
值得注意的是,Maven中央仓库中的这个软件包并非由PostHog直接发布。“org.mvnpm"坐标是通过自动化的mvnpm过程生成的,该过程将npm软件包重新构建为Maven构件。Maven Central表示他们正在实施额外保护措施,防止已知受感染的npm组件被重新打包。截至2025年11月25日22:44 UTC,所有镜像副本已被清除。
这一事态发展正值该供应链事件的"第二波"针对全球开发者,旨在窃取API密钥、云凭证、npm和GitHub令牌等敏感数据,并以蠕虫式传播促进更深层次的供应链入侵。最新变种还演变得更加隐蔽、激进、可扩展和具有破坏性。
除了沿用9月初代版本的感染链外,此次攻击还允许威胁行为者未经授权访问npm维护者账户,并发布其软件包的木马化版本。当毫无戒心的开发者下载并运行这些库时,嵌入的恶意代码会入侵他们的机器,扫描机密信息,并使用被盗令牌将这些信息外泄到GitHub仓库。
攻击通过注入两个恶意工作流实现这一目标:其中一个将受害机器注册为自托管运行器,并在每次打开GitHub讨论时启用任意命令执行;第二个工作流则系统性地收集所有机密信息。此次事件已影响超过28,000个代码仓库。
Cycode公司的Ronen Slavin和Roni Kuznicki表示:“该版本通过使用Bun运行时隐藏其核心逻辑显著增强了隐蔽性,并通过将感染上限从20个提高到100个包来扩大潜在规模。它还采用新的规避技术,将被盗数据外泄到随机命名的公共GitHub仓库,而非单一的硬编码仓库。”
这些攻击表明攻击者利用受信任的软件分发渠道大规模推送恶意版本并危害数千名下游开发者是多么容易。此外,恶意软件的自复制特性意味着单个受感染账户就足以扩大攻击影响范围,并在短时间内演变为广泛传播的疫情。
Aikido的进一步分析发现,威胁行为者利用现有GitHub Actions工作流中的漏洞,特别是针对pull_request_target和workflow_run工作流中的CI错误配置,实施攻击并危害与AsyncAPI、PostHog和Postman相关的项目。
安全研究员Ilyas Makari表示:“该漏洞以允许在CI运行期间执行任何新拉取请求提供的代码的方式,利用了有风险的pull_request_target触发器。单个错误配置就可能将代码仓库变成快速传播攻击的零号患者,使对手能够通过您每天依赖的自动化管道推送恶意代码。”
据评估,此活动是针对该生态系统的更广泛攻击的延续,始于2025年8月影响npm上多个Nx软件包的S1ngularity活动。
Apiiro产品经理Nadav Sharkazy在声明中表示:“作为一波全新且明显更激进的npm供应链恶意软件,Shai-Hulud 2结合了隐蔽执行、凭证广度和后备破坏行为,使其成为今年最具影响力的供应链攻击之一。这种恶意软件展示了流行库中的单次入侵如何通过在安装过程中木马化合法软件包,级联影响数千个下游应用程序。”
GitGuardian、OX Security和Wiz汇编的数据显示,该活动已泄露数百个GitHub访问令牌以及与Amazon Web Services(AWS)、Google Cloud和Microsoft Azure相关的凭证。超过5,000个包含外泄机密的文件被上传到GitHub。GitGuardian对4,645个GitHub仓库的分析发现了11,858个独特机密,其中截至2025年11月24日,仍有2,298个保持有效且公开暴露。
建议用户轮换所有令牌和密钥,审计所有依赖项,移除受感染版本,重新安装干净的软件包,并通过最小权限访问、机密扫描和自动化策略执行来强化开发者和CI/CD环境。
Chainguard联合创始人兼首席执行官Dan Lorenc表示:“Sha1-Hulud再次提醒我们,现代软件供应链仍然太容易被破坏。只需一个受感染的维护者和一个恶意安装脚本,就足以在几小时内波及数千个下游项目。攻击者使用的技术不断演变。大多数这些攻击不依赖零日漏洞。它们利用了开源软件发布、打包和引入生产系统过程中的漏洞。唯一的真正防御是改变软件的构建和消费方式。”