技术说明
TeamPCP威胁组织于2026年5月11日部署了一个自传播的凭据窃取蠕虫('Mini Shai-Hulud'),感染了170+个npm和PyPI包。受影响的生态系统包括:(1) TanStack(42个包,包括每周下载量超过1200万的React Router),(2) UiPath(65个包),(3) Mistral AI SDK(npm和PyPI),(4) Guardrails AI(PyPI),(5) OpenSearch JavaScript客户端,(6) Squawk包(87个命名空间)。该恶意软件通过GitHub Actions工作流利用(滥用pull_request_target)进行传播,使用OIDC令牌抓取绕过双因素身份验证,并将自身嵌入到开发工具配置中(.vscode、.claude)。
攻击途径
通过CI/CD管道劫持进行供应链入侵:(1) 攻击者利用权限过于宽泛的pull_request_target GitHub Actions工作流,(2) 窃取用于npm发布的短期OIDC令牌,(3) 将恶意软件注入包代码,(4) 通过窃取凭据并发布到下游项目进行自传播,(5) 通过开发工具配置文件(.vscode、.claude文件夹)实现持久化,(6) 通过匿名消息应用(Session)泄露凭据以避免检测。
受影响系统
主要影响JavaScript/Node.js和Python开发生态系统;影响使用React(通过TanStack Router)、UiPath RPA、Mistral AI集成和Guardrails AI模型监控的下游企业。估计影响:数十万开发人员;建议开发人员撤销所有连接的凭据(AWS、Google Cloud、GitHub、Kubernetes、HashiCorp Vault)。
缓解措施
立即采取措施:(1) 撤销所有npm和GitHub令牌、AWS/GCP凭据、Kubernetes服务账户以及在5月11日下载受影响包的开发人员接触过的SSH密钥,(2) 审计.vscode和.claude配置文件中的未授权条目,(3) 扫描package-lock.json和requirements.txt文件中的受损版本,(4) 对pull_request_target工作流启用需要批准,(5) 强制执行具有最小范围的短期OIDC令牌。中期措施:(1) 采用软件物料清单(SBOM)扫描和签名工件,(2) 使用包来源功能(如npm provenance)验证发布者身份,(3) 实施仓库级访问控制和依赖项锁定,(4) 监控勒索威胁(该恶意软件包含一个死人开关,威胁如果受害者撤销令牌就清除主目录)。