這些受影響的套件每週總下載量超過 110 萬次。此次攻擊在 AI 開發者社群中引發巨大震盪,並促使微軟立即調整政策。微軟於 2026 年 6 月 19 日高度確信,此攻擊行動為 Sapphire Sleet 所為。
此次攻擊鏈遵循了資安研究人員多年來不斷示警的模式——並精準地利用了套件註冊表正極力消除的憑證弱點。
攻擊者首先針對一名合法的 Mastra 維護者進行社交工程攻擊,成功取得其 npm 帳號憑證。遭入侵的帳號名為「ehindero」,該帳號擁有整個 @mastra 範圍的發布權限。
攻擊者利用遭劫持的帳號,在 88 分鐘內重新發布了 @mastra/* 命名空間下的所有套件。部分報告指出,大量發布的峰值活動甚至僅發生在 19 分鐘內。這種速度暗示他們使用了自動化發布腳本,而非手動上傳。
每個受感染的套件版本都被植入了一個名為「easy-day-js」的惡意依賴——這是對知名日期函式庫「dayjs」的拼字近似攻擊(typosquat)。安全研究人員將此行動命名為「easy-day-js」戰役。
惡意程式碼被設計成透過 npm 的 postinstall 指令碼自動執行。任何開發者在執行 npm install 時,都會立即觸發該惡意負載,無需運行任何應用程式碼。
一旦執行,該惡意負載會從受影響的開發者工作站和建置系統中,竊取加密貨幣錢包金鑰、雲端憑證以及 CI/CD 機密。它還會停用 TLS 驗證,並從攻擊者控制的基礎設施下載第二階段的竊密程式。
2026 年 6 月 19 日,微軟高度確信此次攻擊是 Sapphire Sleet 所為。Sapphire Sleet 是一個主要鎖定金融和加密貨幣領域的北韓國家級行動者。微軟指出,其基礎設施、戰術、技術與程序(TTPs)與先前記錄的 Sapphire Sleet 行動高度一致。Amazon 威脅情報也將 Sapphire Sleet 與較早針對 axios、debug、chalk 和 typo-crypto 等 npm 套件的攻擊行動聯繫起來。
Mastra 攻擊事件加速了微軟多項安全政策的變革。該公司宣布兩項重大政策轉變,旨在根除 Sapphire Sleet 所利用的憑證攻擊向量。
自 2026 年 8 月 17 日起,微軟將新建立的 NuGet.org API 金鑰最長有效期限從 365 天縮減至 30 天。在此日期前建立的所有 API 金鑰將在 2026 年 11 月 1 日被強制失效。
理由很明確:長效 API 金鑰是「容易遺失的鬆散螺絲」,已成為供應鏈入侵的主要攻擊向量。被盜的金鑰為攻擊者提供了一個漫長的窗口期來發布夾帶木馬的套件——這正是 Mastra 事件以及近期 NX Console npm 入侵事件中發生的情況。
微軟強烈建議所有套件維護者遷移至「信任發布」(Trusted Publishing)。這是一種於 2025 年 9 月推出的現代化工作流程,它用短期的 OpenID Connect(OIDC)認證取代了長效 API 金鑰。
信任發布的主要優勢:
當使用信任發布的 CI/CD 工作流程運行時,它會向供應商(例如 GitHub Actions)請求一個加密簽名的 OIDC Token。NuGet.org 會驗證該 Token 是否與已註冊的發布者政策相符,並為該發布階段頒發一個臨時的、一次性的 API 金鑰。
npm 及套件管理生態系統的幾項互補措施,強化了微軟的回應:
npm login 指令現在僅會頒發 2 小時的會話 Token。這些措施共同旨在消除 Sapphire Sleet 所利用的那種攻擊模式:一個具有整個套件範圍發布權限、長期且防護薄弱的 npm 維護者 Token。
npm install --ignore-scripts(或全域設定 ignore-scripts = true)可以阻止惡意的 postinstall 腳本執行。