Axios npm供应链攻击深度分析:8300万周下载量的HTTP库如何被朝鲜黑客投毒

2026年3月31日,朝鲜关联黑客组织UNC1069入侵了axios核心维护者的npm账户,发布两个含后门的版本(1.14.1和0.30.4)。恶意依赖plain-crypto-js在安装时通过SILKBELL投放器部署WAVESHAPER.V2远程访问木马,整个感染过程仅需1.1秒。超过8300万周下载量和200万个依赖包受到影响。
攻击时间线:从账户入侵到全球扩散

2026年3月31日,威胁行为者成功获取了axios HTTP客户端库首席维护者的npm访问令牌。攻击者随即发布了两个被篡改的版本:[email protected](v1分支)和[email protected](v0 legacy分支)。这两个版本引入了一个名为plain-crypto-js的恶意依赖。
npm生态系统的自动安装机制使得恶意代码能够在开发者毫不知情的情况下执行。当开发者运行npm install时,plain-crypto-js的postinstall钩子触发SILKBELL投放器。该投放器从攻击者控制的C2服务器下载WAVESHAPER.V2 RAT,整个过程在约1.1秒内完成,随后投放器自动自毁以消除痕迹。
| 时间节点 | 事件 |
|---|---|
| 2026-03-31 约00:00 UTC | UNC1069获取axios维护者npm令牌 |
| 2026-03-31 约01:00 UTC | 恶意版本[email protected]和@0.30.4发布 |
| 2026-03-31 数小时内 | 开发者开始安装受影响版本 |
| 2026-03-31 约12:00 UTC | 安全社区开始报告可疑依赖 |
| 2026-03-31 约18:00 UTC | npm移除恶意版本 |
| 2026-04-01 | 官方安全公告发布 |
WAVESHAPER.V2 RAT技术分析

WAVESHAPER.V2是一个跨平台远程访问木马,针对macOS、Linux和Windows三个平台部署不同的载荷。
感染链分析:
# 第一步:npm install触发postinstall钩子
npm install [email protected] # 恶意版本
# postinstall钩子执行:
# 1. 下载SILKBELL投放器
# 2. SILKBELL从C2获取WAVESHAPER.V2
# 3. 投放器自毁
各平台RAT驻留位置:
| 平台 | RAT路径 | 特征 |
|---|---|---|
| macOS | /Library/Caches/com.apple.act.mond |
伪装为Apple系统缓存 |
| Linux | /tmp/ld.py |
Python脚本形式 |
| Windows | %PROGRAMDATA%\wt.exe |
可执行文件 |
RAT建立持久化连接至C2服务器sfrclak.com(IP: 142.11.206.73:8000),支持以下功能:远程命令执行、文件上传下载、键盘记录、屏幕截图、凭据窃取。
检测方法:确认是否受影响

对于使用axios的项目,需要立即进行以下检查:
# 检查当前axios版本
npm list axios
# 检查lockfile历史中是否出现过恶意依赖
git log -p -- package-lock.json | grep plain-crypto-js
# 检查yarn.lock
git log -p -- yarn.lock | grep plain-crypto-js
# 检查pnpm-lock.yaml
git log -p -- pnpm-lock.yaml | grep plain-crypto-js
# 检查RAT残留文件
# macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null
# Linux
ls -la /tmp/ld.py 2>/dev/null
# Windows (PowerShell)
Test-Path "$env:PROGRAMDATA\wt.exe"
# 检查网络连接至C2服务器
netstat -an | grep 142.11.206.73
# 或
lsof -i @142.11.206.73 2>/dev/null
如果上述任何检查返回结果,应立即将该机器视为已完全入侵。
修复步骤

立即行动:
# 1. 升级到安全版本
# v1分支
npm install [email protected] --save
# v0 legacy分支
npm install [email protected] --save
# 2. 锁定版本,防止自动升级到恶意版本
npm shrinkwrap
# 3. 清除npm缓存
npm cache clean --force
# 4. 删除node_modules并重新安装
rm -rf node_modules package-lock.json
npm install
# 5. 提交lockfile到版本控制
git add package-lock.json
git commit -m "security: pin axios to safe version after supply chain attack"
C2封堵(防火墙规则):
# iptables
iptables -A OUTPUT -d 142.11.206.73 -j DROP
iptables -A OUTPUT -d sfrclak.com -j DROP
# 企业防火墙/WAF
# 添加以下IOC到黑名单
# IP: 142.11.206.73
# Domain: sfrclak.com
# Port: 8000
影响范围评估

axios是JavaScript生态系统中最广泛使用的HTTP客户端库之一。根据npm注册表数据:
| 指标 | 数据 |
|---|---|
| 周下载量 | ~8300万 |
| 依赖包数量 | 超过200万个 |
| GitHub Stars | 10.5万+ |
| 受影响版本存活时间 | 约12小时 |
| 恶意版本下载次数(估算) | 数十万次 |
受影响最严重的场景:
- CI/CD流水线中的自动化构建(通常使用
npm ci从lockfile安装) - Docker容器构建(
COPY . . && npm install) - 开发者本地环境(新项目初始化或依赖更新)
防御加固:防止类似攻击
这次攻击暴露了npm生态系统的多个结构性弱点。以下是长期加固建议:
1. 依赖锁定: 始终使用lockfile(package-lock.json、yarn.lock或pnpm-lock.yaml),并在CI/CD中使用npm ci而非npm install。这可以确保安装的版本与lockfile一致。
2. 依赖审计自动化: 集成npm audit到CI/CD流水线,自动检测已知漏洞。
{
"scripts": {
"preinstall": "npm audit --audit-level=high",
"postinstall": "npm audit --audit-level=high"
}
}
3. 包完整性校验: 使用npm的--verify-register或第三方工具如snyk验证包的完整性哈希。
4. 最小化依赖: 定期审查项目依赖,移除不必要的间接依赖。axios的功能可以用原生fetch API替代(Node.js 18+内置)。
// 替代方案:使用原生fetch(Node.js 18+)
const response = await fetch('https://api.example.com/data', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ key: 'value' })
});
const data = await response.json();
5. 供应链安全工具: 部署Socket.dev、Snyk或Dependabot等供应链安全监控工具,实时检测依赖包的异常行为。
UNC1069:朝鲜黑客组织的供应链攻击模式
此次攻击被归因于UNC1069,一个与朝鲜政权关联的威胁行为者集群。该组织此前已多次针对npm和PyPI生态系统发起供应链攻击。
朝鲜黑客组织对软件供应链的攻击具有明确的战略目标:通过入侵广泛使用的开源库,最大化感染范围以部署加密货币窃取恶意软件。据估算,朝鲜黑客组织在2025年通过此类攻击窃取了超过15亿美元的加密货币。
这次axios攻击的战术特征与UNC1069此前的行动高度一致:
- 针对高下载量的npm包
- 使用窃取的维护者凭证
- 部署跨平台RAT
- C2基础设施位于非传统托管商
数据来源与参考文献
- Strobes Security. "Axios npm Supply Chain Attack: 83M Weekly Downloads Compromised." strobes.co, March 2026.
- Voiceyfy Security Team. "Axios npm Supply Chain Attack 2026: Detection, Fix & Hardening Guide." voiceyfy.com, April 2026.
- Medium/Cahal Agarwalla. "The Axios npm Supply Chain Attack (March 2026): How North Korean Hackers Poisoned 100 Million." medium.com, 2026.
- npm Registry. "axios package statistics." npmjs.com/package/axios.
- Loginsoft. "Hidden in Plain Sight: Zero-Day Exploitation Meets Ransomware's New Cover." loginsoft.com, 2026.
更新时间: 2026-06-25
评论