npm生态危机:Shai-Hulud蠕虫开启供应链攻击新纪元
⛓️ Critical 供应链攻击
Palo Alto Unit42报告显示,自2025年9月Shai-Hulud蠕虫事件后,npm供应链攻击进入高威胁阶段。攻击者通过窃取npm令牌和GitHub PAT实现蠕虫式传播,并针对SAP开发者生态系统发起Mini Shai-Hulud攻击,利用多阶段载荷窃取云凭证、CI/CD密钥和开发者工作站敏感信息。
来源:Palo Alto Unit42 | 2026-04-24 | 原文链接
🔍 关键发现
- Shai-Hulud蠕虫标志着npm攻击从‘滋扰’时代进入高后果威胁格局,攻击频率和技术深度急剧加速
- 2026年4月出现两波攻击:@bitwarden/cli伪装包和针对SAP CAP模型的Mini Shai-Hulud,后者影响约57万周下载量
- 攻击者使用Bun JavaScript运行时执行混淆载荷,通过GitHub公共提交搜索API作为隐蔽C2通道实现自我传播
⚔️ 攻击链分析
1. 攻击者发布伪装成合法包的恶意npm包(如@bitwarden/cli或@cap-js/sqlite),通过preinstall钩子在安装时自动执行setup.mjs引导程序;2. 引导程序下载Bun运行时并执行execution.js,该脚本窃取GitHub令牌、npm令牌、云服务凭证等敏感信息;3. 窃取的令牌通过GitHub提交消息死信传递,攻击者利用这些令牌将恶意代码注入受害者可发布的npm包中,实现蠕虫式传播;4. 恶意代码还向受害者仓库注入.vscode/setup.mjs和.claude/execution.js等文件,实现持久化控制。
🚩 失陷指标 (IOC)
@bitwarden/cli@2026.4.0@cap-js/sqlite@2.2.2@cap-js/postgres@2.2.2@cap-js/db-service@2.10.1mbt@1.2.48github.com/oven-sh/bun (v1.3.13)OhNoWhatsGoingOnWithGitHub (C2关键词)
🛡️ 缓解建议
- ✅ 立即轮换所有npm令牌和GitHub个人访问令牌(PAT),并审查近期发布的包是否存在异常
- ✅ 在CI/CD管道中实施最小权限原则,限制npm publish权限并使用短期令牌
- ✅ 部署运行时安全监控,检测preinstall钩子执行、Bun运行时下载等异常行为
- ✅ 审查并清理本地和云缓存中的恶意依赖,尤其关注@cap-js/*和@bitwarden/cli相关包
涉及漏洞:[]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。