紧急!Axios 被投毒,3亿项目受到影响!教你怎么自查!

0 阅读2分钟

Axios 作为周下载超亿次的前端最主流 HTTP 请求库,于 2026年3月30日 被曝出 npm 上两个恶意版本:axios@1.14.1 和 axios@0.30.4,属于极高危供应链攻击。图片

核心攻击方式

  1. 维护者账号被盗 攻击者盗取 axios 核心维护者 npm 账号,直接绕过官方 CI/CD 流程发布恶意版本,无合法 Git 提交与 OIDC 校验,肉眼极难区分真伪。
  2. 植入幽灵依赖 两个恶意版本仅修改 package.json,偷偷加入依赖 plain-crypto-js@4.2.1,该包在 axios 源码中完全没有被引用,唯一作用就是触发 postinstall 安装钩子。
  3. 跨平台 RAT 远控木马 plain-crypto-js 自带混淆后的恶意脚本 setup.js,安装时自动执行:
  • 识别 macOS / Windows / Linux 系统
  • 连接攻击者 C2 服务器 sfrclak.com:8000 下载对应 payload
  • 窃取本地密钥、SSH、云凭证、环境变量等敏感信息
  1. 极强反侦察能力 木马执行后会自我删除,并把 package.json 替换成干净版本,npm list 会显示正常版本号,事后检查几乎无痕迹。 唯一判断依据node_modules/plain-crypto-js 目录存在即代表已中招。

受影响版本

  • 有毒:axios@1.14.1axios@0.30.4plain-crypto-js@4.2.1
  • 安全:axios@1.14.0axios@0.30.3

前端自查命令

# 检查是否安装恶意版本  
npm list axios | grep -E "1\.14\.1|0\.30\.4"  
  
# 检查是否存在恶意依赖目录  
ls node_modules/plain-crypto-js

紧急修复步骤

  1. 降级回安全版本
npm install axios@1.14.0  
# 旧版用户  
npm install axios@0.30.3
  1. 在 package.json 锁定版本,防止依赖升级
  2. 删除恶意目录:rm -rf node_modules/plain-crypto-js
  3. CI/CD 构建建议加上 --ignore-scripts 禁用安装钩子
  4. 若机器已执行恶意包,立即轮换所有密钥与凭证,必要时重装环境

高危提醒

该攻击精准度极高、隐蔽性极强,从安装到外联控制仅需数秒,前端项目、本地开发机、CI 流水线均存在泄密风险,务必尽快排查。