热点供应链投毒预警 | 知名NPM开发者遭受邮件钓鱼引发大规模供应链投毒攻击
SBOM情报概述
Summary
昨日(2025.09.08),悬镜供应链安全情报中心在NPM官方仓库中检测到21个知名组件主模块入口文件遭受混淆代码植入的潜在攻击事件,经过进一步深入分析发现,该事件是由于项目维护者遭受仿冒NPM官方邮件(support@npmjs.help)钓鱼导致开发者凭证被盗取引发的大规模NPM组件包投毒攻击,其中来自开发者qix(i.am.qix@gmail.com)维护的18个超高下载量组件全部遭受恶意混淆代码植入,影响范围极大。
该系列投毒攻击使用的混淆恶意代码片段大小~75KB,以单行代码植入的方式插入到组件主模块入口文件头部或尾部,从而实现在组件加载时触发执行恶意代码,恶意代码主要功能是一个基于浏览器的网络流量拦截替换器,通过劫持JS XMLHttpRequest和fetch对象底层网络数据收发API来攻击安装 MetaMask 浏览器数字钱包扩展的用户,恶意代码会在数字钱包(主要包括比特币、以太坊、Solana、莱特币等)交易时拦截流量并将原始钱包接收者地址替换为攻击者内置的钱包地址,从而实现盗币目的。
此次大规模投毒影响的NPM组件包如下所示,截至目前以下所有存在投毒版本的组件都已被NPM官方下架处理。悬镜安全已于第一时间将该系列组件投毒技术分析细节向XSBOM供应链安全情报订阅用户进行推送预警。
受代码投毒影响组件列表
投毒分析
Poisoning Analysis
1
混淆恶意代码植入
以 is-arrayish 组件为例,在0.3.3版本中,攻击者在主模块入口文件index.js文件尾部植入混淆恶意js代码,代码以单行方式植入主要目的是为了利用编辑器默认不换行的特点避免混淆代码被大范围暴露给开发者。
如下所示,该系列投毒攻击使用的混淆恶意代码片段实际大小达到近75KB字节。
混淆恶意代码
混淆代码还原后,通过代码分析可知其主要功能是一个针对MetaMask数字钱包浏览器扩展的钱包地址拦截替换器。
恶意代码混淆还原
2
MetaMask数字钱包环境检测
恶意代码主要攻击目标是安装了MetaMask 浏览器数字钱包扩展的用户,通过 checkethereumw() 函数来检测当前浏览器是否安装了MetaMask扩展。
MetaMask环境检测
3
浏览器网络数据hook拦截
恶意代码通过hook劫持JS XMLHttpRequest和fetch对象底层网络数据收发API(包括open、send、request等)实现在MetaMask 数字货币交易时拦截流量并将原始钱包接收者地址替换为攻击者内置的钱包地址。
网络数据劫持
4
数字钱包交易地址替换劫持
对于MetaMask 数字货币进行以太坊交易时,其目标转账地址最终会被替换为攻击者内置地址:0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976。
钱包转账地址替换
5
IoC 数据
本文分析所涉及的恶意IoC数据如下表所示:
该系列投毒NPM包信息(purl格式)汇总如下:
pkg:npm/is-arrayish@0.3.3
pkg:npm/backslash@0.2.1
pkg:npm/chalk-template@1.1.1
pkg:npm/supports-hyperlinks@4.1.1
pkg:npm/has-ansi@6.0.1
pkg:npm/simple-swizzle@0.2.3
pkg:npm/color-string@2.1.1
pkg:npm/error-ex@1.3.3
pkg:npm/color-name@2.0.1
pkg:npm/slice-ansi@7.1.1
pkg:npm/color-convert@3.1.1
pkg:npm/wrap-ansi@9.0.1
pkg:npm/ansi-regex@6.2.1
pkg:npm/supports-color@10.2.1
pkg:npm/strip-ansi@7.1.1
pkg:npm/chalk@5.6.1
pkg:npm/debug@4.4.2
pkg:npm/ansi-styles@6.2.2
pkg:npm/proto-tinker-wc@0.1.87
pkg:npm/prebid-universal-creative@1.17.3
pkg:npm/prebid.js@10.9.2
排查方式
Investigation Method
以 is-arrayish 恶意组件为例,开发者在项目目录下可通过命令 npm list is-arrayish 或 npm list -g is-arrayish 查询是否已安装存在投毒代码的组件版本(0.3.3),如果已安装请立即使用 npm install is-arrayish@0.3.2 或 npm install -g is-arrayish@0.3.2 回滚到最新安全版本。
此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。
[{
"product": "is-arrayish",
"version": "[0.3.3]",
"language": "javascript",
"id": "XMIRROR-MAL45-6B4D731B",
"description": "NPM组件is-arrayish在0.3.3版本中存在恶意代码投毒,攻击MetaMask浏览器数字钱包应用,替换劫持数字货币转载地址",
"release_date": "2025-09-09"
}]
该系列组件投毒涉及XSBOM情报ID列表如下所示,悬镜OpenSCA、悬镜源鉴SCA、悬镜灵脉SAST、悬镜灵脉RASP等产品已支持检测,成功订阅该情报后可在检测命中时检出。
XMIRROR-MAL45-6B4D731B
XMIRROR-MAL45-850E50D0
XMIRROR-MAL45-5C01E9C8
XMIRROR-MAL45-4280ED9
XMIRROR-MAL45-F171E5BC
XMIRROR-MAL45-A05B9EB8
XMIRROR-MAL45-A965517C
XMIRROR-MAL45-461BCCA1
XMIRROR-MAL45-EB0F0556
XMIRROR-MAL45-17AFE36D
XMIRROR-MAL45-8D112814
XMIRROR-MAL45-3EFD9D2A
XMIRROR-MAL45-BEFDBA6C
XMIRROR-MAL45-30F53A05
XMIRROR-MAL45-3CF20A35
XMIRROR-MAL45-AD32C866
XMIRROR-MAL45-27B9104B
XMIRROR-MAL45-E7940B5
XMIRROR-MAL45-9A53CA3
XMIRROR-MAL45-576DC333
XMIRROR-MAL45-AE318CBF
悬镜源鉴SCA投毒组件检出验证
悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心。依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。