npm 上 axios 库遭攻击:供应链安全危机凸显

序号1

axios 恶意版本上线,攻击范围波及广泛

2026 年 3 月 31 日,StepSecurity 发现 npm 上发布了两个广泛使用的 `axios` HTTP 客户端库的恶意版本:`axios@1.14.1` 和 `axios@0.30.4`。攻击者利用被劫持的 axios 主要维护者的 npm 凭证,绕过该项目正常的 GitHub Actions CI/CD 管道,手动发布了受污染的软件包。

这两个恶意版本注入了新依赖 `plain-crypto-js@4.2.1`,其唯一目的是执行 `postinstall` 脚本,充当跨平台的远程访问木马(RAT)植入器,目标是 macOS、Windows 和 Linux 系统。

axios 是 JavaScript 生态系统中最流行的 HTTP 客户端库,每周下载量超过 3 亿次,此次攻击影响范围巨大。

序号2

精心策划的攻击:从账户劫持到恶意依赖部署

攻击者首先攻破了 axios 项目主要维护者的 `jasonsaayman` npm 账户,将注册电子邮件更改为 `ifstap@proton.me`。利用该账户,攻击者在 1.x 和 0.x 发布分支上同时发布恶意版本,使受影响项目数量最大化。

在发布受后门攻击的 axios 版本之前,攻击者预先在 npm 上部署了恶意软件包 `plain-crypto-js@4.2.1`,由单独的一次性账户 `nrwise` 发布。该软件包伪装成 `crypto-js`,包含 `postinstall` 钩子和证据销毁机制。

攻击者将 `plain-crypto-js: "^4.2.1"` 作为运行时依赖添加到 `axios@1.14.1` 和 `axios@0.30.4` 中,当开发者运行 `npm install` 时,会自动触发 `postinstall` 脚本,启动植入器。

序号3

攻击时间线:步步为营的恶意布局

攻击提前约 18 小时进行准备,恶意依赖在 axios 发布之前就已在 npm 上部署。

2026 年 3 月 30 日 05:57,`plain-crypto-js@4.2.0` 发布,作为干净的诱饵包;23:59,`plain-crypto-js@4.2.1` 发布,添加恶意有效负载。

3 月 31 日 00:21,`axios@1.14.1` 发布;01:00,`axios@0.30.4` 发布。约 03:15,npm 撤销了这两个版本的发布;03:25,npm 对 `plain-crypto-js` 实施安全冻结;04:26,发布安全占位符 `plain-crypto-js@0.0.1-security.0`。

序号4

技术漏洞与防守失误:安全防线的缺口

此次攻击暴露出多个安全问题。攻击者获取了维护者账户的长期经典 npm 访问令牌,绕过了合法版本使用的 OIDC 可信发布机制。

npm 平台在账户安全验证和软件包审查方面存在不足,未能及时发现异常发布。同时,开发者在使用第三方库时,缺乏有效的安全检测手段,难以察觉隐藏的恶意依赖。

序号5

行业警示与防御升级:筑牢安全防线

此次事件为整个行业敲响了警钟,凸显了供应链安全的重要性。企业应加强对维护者账户的安全管理,采用多因素认证等措施,防止账户被劫持。

在使用第三方库时,要建立严格的安全审查机制,对依赖进行深入分析,及时发现和排除潜在的安全风险。同时,加强对安全工具的使用,如 StepSecurity Harden-Runner 等,提高对异常行为的检测能力。

编辑观点:此次 axios 库攻击事件揭示了软件供应链安全的脆弱性。企业和开发者需高度重视,加强安全管理和技术防护,共同筑牢行业安全底线,避免类似事件再次发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值