紧急供应链投毒预警 | NPM生态再次遭受盗号攻击引发新一轮开源供应链投毒
SBOM情报概述
Summary
从昨日(2025.09.15)开始,悬镜供应链安全情报中心在NPM官方仓库中持续捕获到多名开发者账户凭证被盗引发的多起热门组件高危投毒事件,主要包括开发者valorkin维护86个开源项目中的2个组件(ngx-bootstrap 与 ng2-file-upload)以及开发者scttcper维护54个开源项目中的14个组件(@ctrl/tinycolor等),总计涉及近40个开源组件项目,其中受影响的多个热门组件历史总下载量超过亿次,影响范围极大。攻击者在组件源码中直接植入混淆恶意文件bundle.js,其主要功能是在组件安装过程中静默窃取受害者系统平台信息、环境变量数据以及主流业务(包括NPM、Github、AWS及GCP等)的token密钥,攻击者一旦盗取开发环境相关token,极大可能将进一步发动更深入的供应链攻击。经过我们分析验证,本次投毒事件目前已导致多名开发者系统敏感信息及token泄漏。
开发者valorkin项目状态
此次投毒影响的NPM组件包如下所示,悬镜安全已于第一时间将该系列组件投毒技术分析细节向XSBOM供应链安全情报订阅用户进行推送预警。截止目前仍有多个存在投毒代码的NPM组件项目正常托管在NPM官方仓库,对于NPM开发者需要及时排查避免遭受供应链投毒攻击。此外,对于受害开发者名下其他未受影响的开源组件项目,悬镜安全也将持续进行实时监测预警。
部分投毒组件信息
ngx-bootstrap项目
@ctrl/tinycolor项目
本次事件距离上一次大规模NPM热门组件投毒仅一周时间热点供应链投毒预警 | 知名NPM开发者遭受邮件钓鱼引发大规模供应链投毒攻击,目前NPM生态正持续遭遇大范围盗号,对于依赖开源NPM组件的企业及开发者应提高警惕预防潜在的供应链投毒攻击。
投毒分析
Poisoning Analysis
1混淆恶意代码植入
以 ngx-bootstrap 组件20.0.6版本为例,攻击者在package.json中植入postinstall指令实现在组件安装过程中执行包含恶意混淆代码的 bundle.js 文件。
package.json文件
如下所示,bundle.js 文件包含3MB字节混淆js代码。
混淆恶意代码
2
系统敏感信息及token密钥收集
恶意代码会分析受害者平台环境(系统类型、处理器架构等),并根据平台信息从github上(https://github.com/trufflesecurity/trufflehog)获取对应的 TruffleHog 二进制文件到目标系统中执行,主要目的是从文件系统和代码库中搜索高熵字符串及已知模式的token凭证。
TruffleHog下载执行
恶意代码收集的系统敏感信息主要包括平台数据、环境变量、以及各类主流业务(NPM、Github、AWS、GCP等)的token及密钥,如下所示:
环境变量数据及token密钥收集
3
数据窃取外传
恶意代码利用新建Github repo的方式将盗取的敏感数据经过双重base64编码后推送到特定repo中,repo地址通过webhook通知攻击者(https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7)。
数据外传
如下所示,受害者被投毒攻击后,敏感数据将直接在github上公开泄漏,base64解码后可还原出github token凭证。
数据泄漏
数据泄漏样例
4
IoC 数据
本文分析所涉及的部分恶意IoC数据如下表所示:
该系列投毒NPM包信息(purl格式)汇总如下:
pkg:npm/ngx-bootstrap@18.1.4
pkg:npm/ngx-bootstrap@19.0.3
pkg:npm/ngx-bootstrap@19.0.4
pkg:npm/ngx-bootstrap@20.0.3
pkg:npm/ngx-bootstrap@20.0.4
pkg:npm/ngx-bootstrap@20.0.5
pkg:npm/ngx-bootstrap@20.0.6
pkg:npm/ng2-file-upload@7.0.2
pkg:npm/ng2-file-upload@7.0.3
pkg:npm/ng2-file-upload@8.0.1
pkg:npm/ng2-file-upload@8.0.2
pkg:npm/ng2-file-upload@8.0.3
pkg:npm/ng2-file-upload@9.0.1
pkg:npm/@ctrl/tinycolor@4.1.1
pkg:npm/@ctrl/tinycolor@4.1.2
pkg:npm/@ctrl/deluge@7.2.2
pkg:npm/@ctrl/golang-template@1.4.3
pkg:npm/@ctrl/magnet-link@4.0.4
pkg:npm/@ctrl/ngx-codemirror@7.0.2
pkg:npm/@ctrl/ngx-csv@6.0.2
pkg:npm/@ctrl/ngx-emoji-mart@9.2.2
pkg:npm/@ctrl/ngx-rightclick@4.0.2
pkg:npm/@ctrl/qbittorrent@9.7.2
pkg:npm/@ctrl/react-adsense@2.0.2
pkg:npm/@ctrl/shared-torrent@6.3.2
pkg:npm/@ctrl/torrent-file@4.1.2
pkg:npm/@ctrl/transmission@7.3.1
pkg:npm/@ctrl/ts-base32@4.0.2
pkg:npm/angulartics2@14.1.2
pkg:npm/encounter-playground@0.0.5
pkg:npm/json-rules-engine-simplified@0.2.4
pkg:npm/json-rules-engine-simplified@0.2.1
pkg:npm/koa2-swagger-ui@5.11.2
pkg:npm/@nativescript-community/gesturehandler@2.0.35
pkg:npm/@nativescript-community/sentry 4.6.43
pkg:npm/@nativescript-community/text@1.6.13
pkg:npm/@nativescript-community/ui-collectionview@6.0.6
pkg:npm/@nativescript-community/ui-drawer@0.1.30
pkg:npm/@nativescript-community/ui-image@4.5.6
pkg:npm/@nativescript-community/ui-material-bottomsheet@7.2.72
pkg:npm/@nativescript-community/ui-material-core@7.2.76
pkg:npm/@nativescript-community/ui-material-core-tabs@7.2.76
pkg:npm/ngx-color@10.0.2
pkg:npm/ngx-toastr@19.0.2
pkg:npm/ngx-trend@8.0.1
pkg:npm/react-complaint-image@0.0.35
pkg:npm/react-jsonschema-form-conditionals@0.3.21
pkg:npm/react-jsonschema-form-extras@1.0.4
pkg:npm/rxnt-authentication@0.0.6
pkg:npm/rxnt-healthchecks-nestjs@1.0.5
pkg:npm/rxnt-kue@1.0.7
pkg:npm/swc-plugin-component-annotate@1.9.2
pkg:npm/ts-gaussian@3.0.6
排查方式
Investigation Method
以 ngx-bootstrap 恶意组件为例,开发者在项目目录下可通过命令 在项目目录下使用 npm list ngx-bootstrap 或 npm list -g ngx-bootstrap 查询是否已安装存在投毒代码的组件版本(18.1.4, 19.0.3, 19.0.4, 20.0.3, 20.0.4, 20.0.5, 20.0.6),如果已安装请立即使用 npm install ngx-bootstrap@20.0.2 或 npm install -g ngx-bootstrap@20.0.2 回滚到最新安全版本。
此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,并在配置文件中配置db.json路径后直接执行扫描命令(opensca-cli -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。
[{
"product": "ngx-bootstrap",
"version": "{18.1.4, 19.0.3, 19.0.4, 20.0.3, 20.0.4, 20.0.5, 20.0.6}",
"language": "javascript",
"id": "XMIRROR-MAL45-7E3B0777",
"description": "NPM组件ngx-bootstrap多个版本中存在恶意代码投毒,窃取系统平台信息及盗取开发者业务token密钥",
"release_date": "2025-09-15"
}]
该系列组件投毒涉及XSBOM情报ID列表如下所示,悬镜OpenSCA、悬镜源鉴SCA、悬镜灵脉SAST、悬镜灵脉RASP等产品已支持检测,成功订阅该情报后可在检测命中时检出。
XMIRROR-MAL45-7E3B0777
XMIRROR-MAL45-F5B1701C
XMIRROR-MAL45-7F955DC3
...
悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心。依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。