近日,一场代号为 Mini Shai-Hulud 的蠕虫式供应链攻击持续升级。知名数据可视化生态 AntV 旗下多款 npm 包遭恶意投毒,波及 echarts-for-react 等周下载量超百万的热门组件。
事件直击:维护者账号沦陷,数百款包遭批量投毒
攻击者攻陷了 npm 维护者账号 @atool,在短短 22 分钟内,向 323 个 npm 包推送了 639 个恶意版本。这种自动化批量操作痕迹明显,彻底排除了手动投毒的可能。
本次受影响的包不仅包括 @antv 生态的核心库,如 @antv/g2、@antv/g6、@antv/x6、@antv/l7 等,还涵盖了关联热门组件,如 周下载量超 110 万的 echarts-for-react,以及 shturl.cc/、size-sensor 等广泛使用的工具库。
由于这些包在数据可视化、图表渲染、地图组件等场景中被大量企业项目依赖,即便只有部分版本被投毒,也会带来极高的下游暴露风险。
攻击细节:全链路窃密,双重执行路径与多渠道数据泄露
本次攻击沿用了 Mini Shai-Hulud 的成熟框架,恶意 payload 与此前 SAP 事件中使用的窃密木马完全一致,攻击流程环环相扣。
双重执行路径,提高 payload 执行成功率
每个恶意版本都添加了 preinstall 钩子(bun run shturl.c),在包安装阶段自动执行恶意代码。同时,其中 630 个恶意版本还额外注入了 optionalDependencies 字段,指向伪装成 AntV 官方仓库的恶意提交,实现“双重保险”,大幅提升 payload 的执行概率。
全量凭证窃取,覆盖 20 余种开发与云服务密钥
木马一旦执行,会疯狂窃取环境中的各类凭证,包括但不限于:
- 云服务密钥:AWS、Google Cloud、Microsoft Azure 的访问密钥
- 开发工具凭证:GitHub、npm、SSH、Kubernetes、Vault 的 Token 与密钥
- 支付与数据库凭证:Stripe 密钥、数据库连接字符串
甚至还会尝试通过 Docker 主机 socket 实现容器逃逸,进一步扩大攻击范围。
多渠道数据泄露,GitHub 成“数据中转站”
窃取到的数据会被序列化、压缩、加密,优先尝试上传到攻击者控制的恶意域名 t.m-kosche[.]com:443。如果上传失败,木马便会利用偷来的 GitHub Token,在受害者账号下创建公开仓库,将数据以 JSON 文件形式提交。
这些恶意仓库的描述为 niagA oG eW ereH :duluH-iahS,反转后正是 Shai-Hulud: Here We Go Again。截至目前,GitHub 上已有超过 2500 个带有该标记的仓库,这从侧面反映了被攻陷的开发环境数量之多。

风险扩散:开源攻击框架降低门槛,仿冒攻击已出现
发起本次攻击的威胁组织 TeamPCP,此前已将完整的 Shai-Hulud 攻击框架开源,并与 BreachForums 合作举办供应链攻击竞赛,大幅降低了其他攻击者的技术门槛。
目前,已有未知威胁行为者上传了仿冒的恶意 npm 包,搭载了克隆版的 Shai-Hulud 蠕虫与自有 C2 基础设施,导致后续攻击更难追踪,受影响范围也进一步扩大。
这种“攻陷账号 → 投毒包 → 窃取凭证 → 再投毒其他包”的蠕虫式传播逻辑,会让攻击半径呈指数级扩大。一旦企业的 CI/CD 环境被攻陷,攻击者便可利用偷来的 Token 继续向该企业维护的其他包投毒,形成连锁反应。
企业防护建议
为避免遭受本次攻击影响,建议企业立即采取以下防护措施:
- 排查依赖风险:检查项目中是否包含本次受影响的
@antv 生态包及关联包,及时升级到官方发布的干净版本。
- 限制钩子执行:在 CI/CD 环境中禁用 npm 包的
preinstall/postinstall 钩子,避免恶意代码在安装阶段自动运行。
- 强化凭证管理:避免在代码或配置文件中硬编码密钥,使用短期凭证与最小权限原则管理云服务与开发工具 Token。
- 监控异常行为:定期检查 GitHub 账号下是否出现异常创建的公开仓库,及时撤销被泄露的 Token。
资讯来源:Socket、StepSecurity、SafeDep、Trend Micro 等网络安全厂商公开报告


|