首页 网络安全 网安动态 查看内容

供应链攻击再现:攻击者通过劫持axios主要维护者的npm账号发布了两个恶意版本 ...

2026-3-31 16:59 633 0

摘要: 2026年3月31日,热门HTTP客户端库axios遭受npm供应链攻击。攻击者劫持主要维护者npm账号,发布恶意版本[email protected][email protected]。这两个版本偷偷引入恶意依赖[email protected]
关键词:iOS, SOC, Git, axios, npm, GitHub, Socket, Security, payload, PS

这是一起典型的 npm 供应链攻击(supply chain attack),针对的是 npm 上下载量极高的 HTTP 客户端库 axios(每周下载量超过 1 亿次)。攻击者通过劫持 axios 主要维护者(jasonsaayman)的 npm 账号,在 2026 年 3 月 31 日发布了两个恶意版本:

这两个版本会自动引入一个此前不存在的恶意依赖包 [email protected]。该恶意包利用 npm 的 postinstall 钩子,在 npm install 时静默执行恶意代码(setup.js),属于典型的“安装器恶意软件”(installer malware)。

恶意行为细节

  • 使用两层混淆(反向 Base64 + XOR 加密)隐藏 payload,动态加载 fs、os、execSync 等模块,绕过静态分析。
  • 根据操作系统投放不同 payload:
    • macOS:下载 C++ RAT 二进制文件,伪装成系统缓存进程,每 60 秒向 C2 服务器(sfrclak.com:8000)回传主机信息,支持远程命令执行。
    • Windows:伪装成 Windows Terminal,执行隐藏 PowerShell 脚本。
    • Linux:在 /tmp 目录投放 Python RAT。
  • 执行后自毁痕迹(删除 setup.js、修改 package.json 等),安装后在 node_modules 中几乎看不到明显恶意文件,必须检查 lockfile 才能发现。
  • 此外,还发现另外两个包(@shadanai/openclaw 和 @qqbrowser/openclaw-qbot)也嵌入了相同恶意 payload。

根因:维护者 npm 账号被入侵(邮箱改为匿名 Proton Mail),绕过项目正常的 GitHub Actions OIDC 可信发布流程,直接用 npm CLI 手动发布。攻击者提前 ~18 小时预埋了 plain-crypto-js 包,整个攻击在 39 分钟内同时污染 1.x 和 0.x 分支,最大化影响使用 caret 范围(^)的项目的破坏面。Socket Security 的 AI 扫描器在恶意包发布后 6 分钟就检测到异常。

目前 npm 已移除恶意版本,axios 官方正在调查并修复发布流程。

解决方案(立即执行)

  1. 快速自查(所有项目必须做):
    • 运行命令:npm ls axios 和 npm ls plain-crypto-js
    • 打开 package-lock.json(或 yarn.lock / pnpm-lock.yaml),搜索 1.14.1、0.30.4 或 [email protected]
    • 检查所有 feature branch 和 open PR
  2. 立即修复受影响项目
    • 删除 node_modules 文件夹和 lockfile
    • 在 package.json 中固定 axios 版本(不要使用 ^ 或 ~):
      JSON
      "axios": "1.14.0"   // 或更早的已知安全版本(如 1.7.x 系列)
    • 重新运行 npm install(或 yarn / pnpm install)
    • 提交更新后的 lockfile
  3. 如果怀疑已执行恶意代码
    • 假设主机已感染:立即旋转所有凭证(npm token、云服务密钥、GitHub token 等)
    • 检查系统 IOC:
      • macOS:/Library/Caches/com.apple.act.mond
      • Windows:%PROGRAMDATA%\wt.exe、%TEMP%\6202033.*
      • Linux:/tmp/ld.py
    • 使用杀毒软件或 EDR 工具全盘扫描
    • 建议重装受影响机器(尤其是 CI/CD 服务器)
  4. 长期预防措施(强烈推荐):
    • 固定所有依赖版本,避免自动升级到 latest
    • 在 CI/CD 中集成依赖安全扫描工具(如 Socket Security、npm audit、Dependabot + Socket)
    • 为维护者启用 npm 2FA、短期 token、严格发布权限
    • 使用 Socket for GitHub(免费)在 PR 阶段自动阻挡恶意依赖
    • 开发者笔记本安装 Socket Firewall(免费)实时阻挡恶意 postinstall
    • 优先考虑使用原生 fetch API,减少不必要第三方依赖

文末引用链接

建议所有使用 axios 的项目立即检查并固定版本,供应链攻击的破坏力极强,早发现早处理可大幅降低风险。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋
返回顶部