Axios 供应链攻击:恶意包伪装成主流HTTP客户端库 2026年3月30日,npm官方仓库中两个被植入恶
2026年3月30日,npm官方仓库中两个被植入恶意代码的Axios版本被曝光。作为每周下载量超亿次的核心HTTP客户端库,axios@1.14.1 和 axios@0.30.4 的污染事件,标志着一次针对前端开发供应链的精准、高危攻击。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
Axios供应链攻击流程示意图
此次攻击的执行路径清晰且极具欺骗性,完整展示了现代软件供应链攻击的典型手法。
第一阶段:权限劫持。 攻击者首先攻陷了Axios核心维护者的npm账户。这使得恶意版本得以通过合法身份发布,绕过了基于CI/CD的自动化安全扫描。这些版本在npm仓库中看似正常,但缺乏对应的Git提交记录与OIDC签名验证。
第二阶段:依赖注入。 恶意包对Axios核心代码的改动极小,仅在package.json中秘密添加了一个名为plain-crypto-js@4.2.1的依赖。该依赖在Axios源码中未被调用,其唯一目的是在安装时触发postinstall钩子脚本,启动攻击载荷。
第三阶段:载荷执行与数据窃取。 plain-crypto-js包内包含一个经过混淆的setup.js脚本。该脚本具备多平台适配与持久化能力:
sfrclak.com:8000;第四阶段:痕迹清除。 攻击最具威胁的特性在于其反取证能力。脚本执行后,会立即进行自我清理:删除恶意依赖文件,并将package.json还原为干净版本。事后通过npm list检查,依赖树显示正常。最关键的排查线索,是检查node_modules目录下是否残留plain-crypto-js文件夹。
请立即核对你的项目依赖,确认是否包含以下版本:
axios@1.14.1、axios@0.30.4、plain-crypto-js@4.2.1axios@1.14.0、axios@0.30.3在项目根目录下执行以下终端命令,进行快速安全扫描:
# 检查是否安装了受污染的Axios版本
npm list axios | grep -E “1\.14\.1|0\.30\.4”
# 检查node_modules中是否存在恶意依赖目录
ls node_modules/plain-crypto-js
若检测到感染,请按顺序执行以下修复操作:
# 对于使用1.x版本的用户
npm install axios@1.14.0
# 对于仍在使用0.x旧版本的用户
npm install axios@0.30.3
package.json中实施版本锁。 使用精确版本号或版本锁文件,防止依赖解析意外升级。rm -rf node_modules/plain-crypto-js
—ignore-scripts标志,全局禁用npm生命周期脚本,以阻断此类攻击向量。此次攻击的复杂性和隐蔽性极高。从依赖安装到建立远程控制连接,整个过程可能在极短时间内完成,对开发者本地环境、项目源码以及自动化构建流水线均构成严重的数据泄露威胁。建议所有前端团队立即启动依赖审查与安全加固。
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。