2026年3月31日,axios 的 npm 发布账号遭到劫持,两个恶意版本被悄然推送:

axios@1.14.1axios@0.30.4
这两个恶意版本会在安装时静默植入跨平台远程访问木马(RAT),覆盖 macOS、Windows、Linux 系统。更为隐蔽的是,安装后使用 npm audit 或 npm list 检查时,不会显示任何异常信息。
尽管恶意版本已被下架,但已植入的木马仍在后台运行,等待被发现。
谁可能中招?
如果在 2026年3月31日 00:21 ~ 03:15(UTC)这个时间窗口内执行过 npm install,并且安装了上述两个恶意版本之一,那么你的个人电脑、开发机器乃至 CI/CD 服务器,都可能已被攻击者远程控制。
axios 是影响力巨大的 HTTP 库——几乎所有 JavaScript 项目都会依赖它,每周下载量超过 1 亿次。就连此前泄露的 Claude Code 源码中也使用了 axios。其覆盖范围之广,影响面之大,可想而知。
为什么小龙虾可能中招?
小龙虾(OpenClaw)是基于 Node.js 的桌面应用程序,与所有 JavaScript 项目类似,它拥有自己的 node_modules 目录,其中很可能直接或间接依赖于 axios。因此,该应用被感染无需用户进行特殊操作,只要符合以下任一条件即可:
- 在感染窗口期内更新了小龙虾(触发了
npm install或npm update) - 小龙虾的某个依赖项在窗口期内通过 CI/CD 构建流程拉取了恶意版本
- 在同一台计算机上,任何其他 JavaScript 项目执行了
npm install并拉取了恶意的 axios 版本
更为严重的是——此 RAT 并非隐藏于单个项目的 node_modules 目录中,而是直接驻留在操作系统层面:macOS 路径 /Library/Caches/com.apple.act.mond、Windows 路径 %PROGRAMDATA%wt.exe、Linux 路径 /tmp/ld.py。因此,只要一台机器上有一个项目被感染,整台机器即告沦陷。即便你只在单个项目中犯错,也相当于为攻击者敞开了整台电脑的大门。
立即排查
请将以下排查提示词直接输入给小龙虾(OpenClaw),让其协助扫描当前系统环境:
参考以下方法全面排查当前环境中是否存在被投毒的 axios@1.14.1 与 axios@0.30.4,以及恶意模块 plain-crypto-js,确保不遗漏任何环节:
# 步骤1:检查项目中是否为恶意 axios 版本
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"
# 步骤2:检查 node_modules 中是否存在 plain-crypto-js
# 该目录存在即表明投放器已执行,无论其 package.json 中显示何种版本
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
# 步骤3:检查各平台 RAT 落地文件
# 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(cmd.exe)
dir "%PROGRAMDATA%wt.exe" 2>nul && echo COMPROMISED
发现问题怎么办?
执行以下步骤降级 axios 并重新安装依赖:
# 1.x 用户
npm install axios@1.14.0
# 0.x 用户
npm install axios@0.30.3
# 清除恶意依赖,使用 --ignore-scripts 重装(禁止 postinstall 钩子执行)
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts
⚠️⚠️如果检测到 RAT 文件(COMPROMISED)⚠️⚠️:
应将此机器视为完全沦陷,切勿原地清除。你必须立即采取行动:轮换所有曾在该机器上使用过的凭据——npm token、SSH 私钥、云账号 Access Key、CI/CD Secret、.env 文件中的所有敏感信息。一个都不能漏。
参考
详细原始披露报告:StepSecurity — axios Compromised on npm(www.stepsecurity.io/blog/axios-…)
