腾讯云安全中心监测到,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. 检查文件哈希值:
(1) axios-1.14.1.tgz:
恶意 SHA256:5bb67e88846096f1f8d42a0f0350c9c46260591567612ff9af46f98d1b7571cd
(2) axios-0.30.4.tgz:
恶意 SHA256:59336a964f110c25c112bcc5adca7090296b54ab33fa95c0744b94f8a0d80c0f
(3) plain-crypto-js-4.2.1.tgz:
恶意 SHA256:58401c195fe0a6204b42f5f90995ece5fab74ce7c69c67a24c61a057325af668
(4) setup.js:
恶意 SHA256:e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
(5) Linux平台(ld.py):
恶意 SHA256:fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
(6) Windows 平台(6202033.ps1):
恶意 SHA256:617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101
(7) Windows 平台持久化组件(system.bat):
恶意 SHA256:f7d335205b8d7b20208fb3ef93ee6dc817905dc3ae0c10a0b164f4e7d07121cd
(8) macOS 平台(com.apple.act.mond):
恶意 SHA256:92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
(9) 其它恶意 SHA256:
5b5fbc627502c5797d97b206b6dcf537889e6bea6d4e81a835e103e311690e22
46f5eea70d536f7affe40409d7aaa5fa0009f0dc4538ba2867cb7569737db859
8c8f5f095d65d3f33ce89a77dfbe84a79bb29d2e0073a57a23dcc014d0683c2e
506690fcbd10fbe6f2b85b49a1fffa9d984c376c25ef6b73f764f670e932cab4
4465bdeaddc8c049a67a3d5ec105b2f07dae72fa080166e51b8f487516eb8d07
ed8560c1ac7ceb6983ba995124d5917dc1a00288912387a6389296637d5f815c
4. 检查网络流量中是否有到以下域名/IP的历史请求流量:
sfrclak[.]com
callnrwise[.]com
142.11.206.73
142.11.196.73
142.11.199.73
5. 可直接使用 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 文件中的所有密钥等。
【备注】:建议您在升级前做好数据备份工作,避免出现意外
参考链接