立即停用!Axios 惨遭投毒!
Axios投毒事件:这不是演习,是供应链攻击的“工业级”升级
最近几天,整个前端社区的后背可能都有些发凉。一场席卷npm生态的供应链攻击风暴,远比我们想象的更猛烈、更专业。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
就在CanisterWorm这个自传播蠕虫病毒还在不断感染新包、弄得人心惶惶时,一个更重磅的消息传来:我们几乎每天都在用的请求库axios,确认遭到了恶意投毒。如果说之前的攻击还像是“散兵游勇”,那么这次,对手已经展现出相当成熟的“工业化”作业能力。

事件概述
事情是这样的:axios,这个npm上基石级别的依赖包,每周下载量轻松过亿,居然在两个最新发布的版本里被动了手脚。
受影响版本:axios@1.14.1、axios@0.30.4
安全版本:axios@1.14.0、axios@0.30.3

问题的核心,就藏在一个凭空出现的依赖里:plain-crypto-js@4.2.1。
诡异之处在于,翻遍axios的源码,你压根找不到任何地方引用了这个包。那它来干什么?原来,它的唯一使命,就是在安装阶段(postinstall)默默执行一段恶意代码。这招非常经典,攻击的矛头避开了你的业务逻辑,直接瞄准了最容易被忽视的“安装”环节。
恶意行为分析
根据Socket AI等安全机构的分析,这个plain-crypto-js本质上是一个高度混淆的“投放器”(dropper)。它的行动链条相当清晰:
- 先是在运行时解密并执行攻击指令。
- 动态加载fs、os、execSync等系统模块,以此规避静态代码扫描。
- 执行解码后的Shell命令,从远程下载真正的“货”——一个远程访问木马(RAT)。
- 将恶意文件写入系统目录(比如临时文件夹或ProgramData)。
- 最后,清理现场,用“干净”文件覆盖掉自己的痕迹,然后消失。
简单来说,一次看似平常的npm install axios,就可能在你眼皮底下,完成从投毒到远程控制的完整入侵链路。
攻击特点
这次投毒事件,有几个细节很值得玩味,也恰恰代表了当前供应链攻击的新趋势:
- 本体干净,依赖有毒:axios自己的代码清清白白,所有脏活都甩给了那个“幽灵依赖”。
- 专攻“幽灵依赖”:这个恶意包根本不会被import,它属于典型的“幻影”,专靠postinstall钩子触发。
- 安装即执行:恶意脚本的执行时机选在安装阶段,防不胜防。
- 自毁清痕:干完活就自我删除并伪装,常规检查很难发现蛛丝马迹。
- 全平台覆盖:其payload针对macOS、Windows、Linux三大平台做了专门适配,力求“一个都不放过”。
这种打法,巧妙绕过了传统的代码审计和依赖扫描,把攻击门槛和隐蔽性都提高了一个等级。
影响范围
考虑到axios的江湖地位,其影响面可能非常广:
- 所有使用React、Vue等框架的前端应用。
- 大量的Node.js后端服务。
- CI/CD构建流程和自动化脚本。
- 公司内部的各类工具链。
这意味着,一旦中招,威胁不仅限于开发者的本地机器,更可能顺着流水线,一路扩散到构建服务器甚至生产环境,造成二次伤害。
如何判断是否受影响

如果你心里打鼓,不确定自己的项目有没有“踩雷”,可以按下面几步快速自查:
第一步,检查项目是否使用了有毒版本:
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
grep -A1 '"axios"' package-lock.json | grep -E "1\.14\.1|0\.30\.4"
第二步,检查恶意依赖是否已被下载:
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
这里要特别注意:即使这个目录里的package.json看起来人畜无害,恶意代码也可能已经执行完毕并自我清理了。
第三步,检查系统是否留有典型入侵痕迹:
# macOS
ls -la /Library/Caches/com.apple.act.mond
# Linux
ls -la /tmp/ld.py
# Windows
dir "%PROGRAMDATA%\wt.exe"
如果发现上述任何文件,基本可以断定系统已被入侵。
此外,务必检查CI/CD流水线的历史日志。如果任何一次构建曾拉取过上述有问题版本,那么整个流水线以及它接触过的所有凭证,都应该按已失陷处理。
补救措施

如果确认受影响,不要慌,按照以下步骤系统性地处理:
(1) 立即降级并锁定版本
先把axios降回安全版本:
npm install axios@1.14.0
# 或
npm install axios@0.30.3
并在package.json中强制锁定,杜绝意外升级:
{
"dependencies": { "axios": "1.14.0" },
"overrides": { "axios": "1.14.0" },
"resolutions": { "axios": "1.14.0" }
}
(2) 清理恶意依赖并安全重装
手动删除那个恶意包,并忽略脚本执行来重新安装:
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts
(3) 评估环境,必要时重建
如果在上一步的痕迹检查中,发现了任何远端控制木马(RAT)的迹象,最稳妥的做法是直接重建整个环境(如虚拟机、容器、服务器),原地清理的风险太高。
(4) 紧急轮换所有相关凭证
这是重中之重!假设环境可能已失陷,以下所有凭证必须立即更换:
- npm发布令牌(token)
- GitHub访问令牌
- 云服务密钥(AWS、GCP、Azure等)
- SSH密钥
- CI/CD系统中配置的所有机密信息(Secrets)
- 项目.env文件中的敏感环境变量
(5) 全面审计CI/CD流水线
所有执行过受影响版本安装的流水线,其运行环境和存储的凭证都需要彻查和更换。
(6) 强化CI/CD默认策略
建议在CI/CD配置中,将安装命令固定为:
npm ci --ignore-scripts
--ignore-scripts这个参数能有效阻断postinstall等生命周期钩子里的恶意代码,是关键的安全锁。
(7) 网络层封锁
作为临时应急措施,可以在防火墙或主机层面阻断已知的恶意命令与控制(C2)服务器通信:
iptables -A OUTPUT -d 142.11.206.73 -j DROP
echo "0.0.0.0 sfrclak.com" >> /etc/hosts
写在最后
说到底,这次axios事件绝非偶然。它是一次明确的信号,标志着针对开源软件供应链的攻击,已经从零散的“小偷小摸”,进化到了体系化、工业化的新阶段。
攻击链条上的每一个环节——账号劫持、依赖混淆、隐蔽执行、自动清痕——都显得愈发“专业”。这意味着,开发者过去那种“默认信任上游依赖”的心态,已经不合时宜了。
是时候从“信任”全面转向“验证”了。严格锁定依赖版本、仔细审视每一次更新、默认禁止安装脚本执行……这些措施,不再是可有可无的最佳实践,而是必须落实的基础安全防线。毕竟,在数字世界里,供应链上的任何一个薄弱环节,都可能成为全线溃败的起点。
(事件详细分析与检测脚本可参考:StepSecurity官方分析报告)
相关攻略
Axios投毒事件:这不是演习,是供应链攻击的“工业级”升级 最近几天,整个前端社区的后背可能都有些发凉。一场席卷npm生态的供应链攻击风暴,远比我们想象的更猛烈、更专业。 就在CanisterWorm这个自传播蠕虫病毒还在不断感染新包、弄得人心惶惶时,一个更重磅的消息传来:我们几乎每天都在用的请求
安全专家建议开发者在安装前审计软件包、仔细检查包元数据是否存在异常,并优先使用最新n8n集成组件。 安全研究人员发现威胁行为者在npm注册表上传了八个伪装成n8n工作流自动化平台集成组件的恶意软件包
热门专题
热门推荐
Lemonaid是什么 如果你正为音乐创作寻找得力助手,那么Lemonaid很可能就是答案。它是一款专门面向专业音乐人打造的AI音乐生成工具,核心能力在于自主生成包含完整旋律、和声与节奏的乐曲。无论是想要一段氛围感十足的背景音乐,还是为具体场景定制配乐,它都能提供高度逼真且质量上乘的作品。工具提供了
苹果也要出折叠屏,传闻已经有几年了,从目前供应链、分析师与知名爆料者释放的信息来看,这款与市面大折都不一样的阔折叠似乎已经蓄势待发,大概率今年下半年就要正式面市。今天我们就来为大家汇总一波,没准儿就有你想知道的消息。 关于苹果折叠屏手机的传闻,已经流传了好几年。如今,综合供应链、分析师以及各路知名爆
《刺客信条:黑旗重制版》官宣之际,这款新海盗游戏为何能抢先赢得玩家口碑? 当游戏界的焦点都集中在《刺客信条:黑旗重制版》的正式公布时,一款名为《风启之旅》(Windrose)的开放世界海盗生存建造游戏,却凭借其过硬的品质与独特的玩法融合,悄然在玩家社区中掀起热议。这款由乌兹别克斯坦团队Kraken
产品介绍 提到云端智能视频创作,腾讯智影是一个绕不开的名字。这款由腾讯推出的平台,本质上是一个一站式的在线视频工厂,集成了从素材挖掘、剪辑、渲染到最终发布的全链路功能,旨在为用户提供全方位的视频创作解决方案。更吸引人的是,它不仅免费开放,还深度整合了多项前沿AI技术,目标很明确:让视频化表达这件事,
《王者荣耀世界》线下活动风波:合影互动引争议,职业素养与网络舆论深度探讨 近日,《王者荣耀世界》的一场线下玩家见面会,因台上一次短暂的合影互动,意外成为全网热议的焦点。活动中,一位男粉丝上台与角色扮演者(Coser)合影时,主动做出比心手势以示友好,却未得到身旁Coser的任何回应。男生举着手势在原





