AI 語音朗讀 · Edge TTS
Axios 供應鏈攻擊:大規模惡意依賴注入事件
一起重大的供應鏈攻擊針對 npm 生態中使用最廣泛的 HTTP 用戶端 Axios,在特定版本中植入惡意依賴。該攻擊利用被入侵的發佈帳戶繞過正常的發佈流程,展示了開源軟體信任模型的嚴重漏洞。
受害者規模與攻擊範圍
Axios 每週擁有 1 億次下載量,廣泛應用於前端框架、後端服務和企業應用。 受影響的版本包括 [email protected] 和 [email protected],兩個版本都引入了惡意套件 [email protected]。 任何使用插字號範圍 (^1.14.0 或 ^0.30.0) 的專案在執行 npm install 時都會自動拉取受感染版本。 此外,@shadanai/openclaw 和 @qqbrowser/openclaw-qbot 等下游套件也被波及,透過 vendored 依賴或被篡改的 axios 版本傳播相同的惡意程式。
發佈流程外的異常發佈
受影響的 Axios 版本並未出現在官方 GitHub 倉庫的標籤中,打破了該專案的標準發佈慣例(通常會同時發佈 GitHub 標籤和 npm 版本)。 這表明套件很可能由入侵者在專案維護者不知情的情況下直接發佈到 npm registry。 Axios 維護者隨後承認無法立即收回攻擊者的帳戶存取權限,發現發佈工作流程存在漏洞,包括長期 npm token 與可信發佈並存,使未授權存取得以發生。
精心協調的多階段惡意軟體
[email protected] 於 2026 年 3 月 30 日 23:59:12 UTC 發佈,Socket 的自動惡意軟體檢測在 6 分鐘內於 00:05:41 UTC 標記該套件。 先前發佈的 4.2.0 版本(18 小時前)是對合法 crypto-js 程式庫的乾淨 typosquat,說明攻擊者精心準備了依賴版本,與 Axios 發佈進行協調。 兩個惡意 Axios 版本在 39 分鐘內相繼發佈,同時跨越 1.x 和 0.x 分支,展示對整個生態的同步投毒。
雙層混淆與隱藏的遠端存取特洛木馬 (RAT)
惡意套件的 setup.js dropper 透過 npm postinstall 生命週期鉤子自動執行,採用專門設計的雙層編碼方案規避靜態分析:
- 第一層:反向 Base64 編碼,底線字元替換為 = 填充字元
- 第二層:XOR 密碼,使用鑰匙 OrDeR_7077 的數字進行逐字元加密
18 個混淆字串涵蓋模組名稱、C2 網址、shell 命令和檔案路徑。 執行流程在檢測作業系統後分支到平台特定的 payload 傳遞,隨後自我刪除以破壞痕跡。
平台特定的 Payload 與 EDR 規避
macOS:透過 AppleScript 下載二進位檔至 /Library/Caches/com.apple.act.mond(模擬蘋果系統守護程式),傳遞 C2 URL 作為引數,並在背景透過 /bin/zsh 啟動。 Windows:定位 PowerShell 並將其複製至 %PROGRAMDATA%\wt.exe(偽裝為 Windows Terminal),透過 VBScript 包裝器(隱藏視窗)下載並執行 PowerShell 腳本,使用 -w hidden -ep bypass 旗標規避端點檢測與回應。 Linux:最簡單的 payload,下載 Python 腳本至 /tmp/ld.py 並以 nohup 分離執行。
macOS 二階段 payload 是功能完整的 C++ RAT,透過 HTTP POST 每 60 秒向 C2 回報系統資訊(包含主機名稱、使用者名稱、macOS 版本、時區、CPU 類型、安裝日期、開機時間、執行程序與目錄清單)。 RAT 命令包括 peinject(部署額外 payload)、runscript(執行 shell 命令或 AppleScript)和 rundir(列舉目錄),賦予攻擊者完整的命令執行和檔案系統控制權。 User-Agent 偽造為 IE 8 簽名,意圖混淆網路監控工具。
反取證機制與 IOC
執行完成後,惡意軟體刪除 setup.js 和 package.json,將 package.md 重新命名為 package.json(還原無 postinstall 鉤子的乾淨版本 4.2.0),使安裝
🚨 CRITICAL: Active supply chain attack on axios -- one of npm's most depended-on packages.
— Feross (@feross) March 31, 2026
The latest [email protected] now pulls in [email protected], a package that did not exist before today. This is a live compromise.
This is textbook supply chain installer malware. axios…
Developing story...
— Feross (@feross) March 31, 2026
An additional malicious package version has been identified by the @SocketSecurity team:
— Feross (@feross) March 31, 2026
[email protected]
Developing story... the Socket team is tracking and posting updates here: https://t.co/yEmqG0QbXK
— Feross (@feross) March 31, 2026
Reminder to install Socket for GitHub (it's free!) to protect your PRs from bad dependencies: https://t.co/D9bsRJj65R
— Feross (@feross) March 31, 2026
Also don't forget Socket Firewall to protect your laptop: https://t.co/ebIUWSo0Y9
For those curious, the malicious payload is here: https://t.co/CkFIT9ZlWP pic.twitter.com/6KSi0FdlLn
— Feross (@feross) March 31, 2026
