腾讯云安全中心监测到,Axios 被曝出存在供应链投毒风险,攻击者可利用该投毒包自动下载并执行远程后门脚本,实现远程控制、窃取敏感信息、植入持久化后门等危害。
为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。
风险详情
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。主要用于向后台发送请求。
据描述,在 Axios 组件 0.30.4 和 1.14.1 版本中,由于攻击者通过入侵 axios 官方维护者账号(jasonsaayman),将恶意依赖组件 plain-crypto-js@4.2.1 注入到 axios 的运行时依赖中。plain-crypto-js 是热门加密库 crypto-js 的仿冒包,该恶意包包含一个 postinstall 钩子脚本(setup.js),该脚本经过高度混淆,运行时会解码 Base64 字符串,从攻击者控制的远程 C2 服务器(http://sfrclak[.]com:8000/6202033)下载对应操作系统(Windows、macOS、Linux)的恶意载荷,写入系统临时目录后通过 Shell 或 PowerShell 执行,最后自删除以隐藏攻击痕迹。
注:腾讯云 skillhub 不受该投毒事件影响。
风险等级
高风险
影响版本
axios (npm) == 0.30.4
axios (npm) == 1.14.1
plain-crypto-js (npm) == 4.2.1
安全版本
axios (npm) <= 0.30.3
axios (npm) <= 1.14.0
axios (npm) > 0.30.4
axios (npm) > 1.14.1
plain-crypto-js (npm) 恶意包已被 npm 官方下架
1. 恶意版本/依赖检测:
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4" && echo "AFFECTED"
npm list -g axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4" && echo "AFFECTED"
grep -A1 '"axios"' package-lock.json | grep -E "1\.14\.1|0\.30\.4" && echo "AFFECTED"
ls node_modules/plain-crypto-js 2>/dev/null && echo "AFFECTED"
2. 恶意载荷落地检测:
# macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "COMPROMISED"
# Linux
ls -la /tmp/ld.py 2>/dev/null && echo "COMPROMISED"
# Windows
dir "%PROGRAMDATA%\wt.exe" 2>nul && echo "COMPROMISED"
3. 可直接使用 AI Agent 安全中心排查。
修复建议
1. 降级 axios 到安全版本(立即执行)
# 卸载恶意版本
npm uninstall axios
# 安装安全版本(1.14.0 或 0.30.3)
npm install axios@1.14.0
全局修复:
npm uninstall -g axios
npm install -g axios@1.14.0
2. 清理恶意依赖
# 删除 plain-crypto-js
rm -rf node_modules/plain-crypto-js
# 清理 npm 缓存
npm cache clean --force
# 重新安装(--ignore-scripts 阻止 postinstall 脚本执行)
npm ci --ignore-scripts
3. 清除已落地的恶意载荷
(1) Linux:
# 删除恶意脚本
rm -f /tmp/ld.py
# 检查是否有其他持久化痕迹
grep -r "sfrclak.com" /etc/cron* 2>/dev/null
grep -r "sfrclak.com" ~/.bashrc ~/.zshrc 2>/dev/null
(2) macOS:
# 删除恶意文件
rm -f /Library/Caches/com.apple.act.mond
# 检查启动项
launchctl list | grep -i com.apple.act
(3) Windows(以管理员身份运行 PowerShell):
# 删除恶意文件
Remove-Item "$env:PROGRAMDATA\wt.exe" -Force -ErrorAction SilentlyContinue
# 检查计划任务
Get-ScheduledTask | Where-Object {$_.TaskName -like "*wt*"} | Unregister-ScheduledTask -Confirm:$false
4. 凭证轮换
立即更换所有存储在该主机上的凭证,包括 npm 发布 Token、AWS 访问密钥、SSH 私钥、云服务凭据(GCP、Azure)、CI/CD Secrets(GitHub/GitLab/Jenkins)、.env 文件中的所有密钥等。
【备注】:建议您在升级前做好数据备份工作,避免出现意外
参考链接