TanStack 供應鏈攻擊:2026 年 5 月 GitHub Actions 生態系統的重大漏洞危機
TL;DR
TanStack 供應鏈攻擊:當「受信任」的軟體反噬時
2026 年 5 月 11 日,開發者社群迎來了一場殘酷的警示。在 UTC 時間 19:20 到 19:26 之間,現代網頁開發的基石——TanStack npm 命名空間,遭到了名為 TeamPCP 的威脅組織劫持。在短短六分鐘內,他們發布了 42 個 @tanstack/* 套件的 84 個惡意版本。
這並非普通的「誤植域名」(typo-squatting)攻擊。攻擊者不僅僅是上傳了惡意程式碼,他們更直接入侵了實際的建置管線(build pipeline)。透過利用 GitHub Actions 的漏洞,他們將一個憑證竊取蠕蟲直接注入到供應鏈中。最令人震驚的是,每一個惡意套件都帶有有效的 SLSA(軟體工件供應鏈等級)來源證明。
信任的假象
這是軟體安全的一個分水嶺。我們首次見到惡意 npm 套件帶有有效的 SLSA Build Level 3 來源證明。請試想一下:建置流程被徹底滲透,以至於安全證明(即那些本應證明套件安全性的機制)在技術上是準確的,但本質上卻是惡意的。
正如 TanStack 發布的事件後續報告 所詳述,該程式碼被設計為在執行 npm install 時立即觸發。一旦啟動,它便開始搜尋所有內容:AWS 金鑰、GCP 憑證、Kubernetes 設定檔、GitHub Token 以及 SSH 金鑰。隨後,它透過 Session/Oxen 網路悄悄地將這些資料外洩。如果您當時正在執行這些套件,您的機密基本上正被即時廣播給攻擊者。
攻擊剖析
TeamPCP(您可能透過 DeadCatx3、PCPcat 或 ShellForce 等別名認識他們)並未止步於 TanStack。他們部署了「Mini Shai-Hulud」蠕蟲的變種。在五小時內,感染擴散至 npm 和 PyPI 上的超過 170 個套件。
npm 供應鏈入侵事後檢討報告 澄清,雖然個別 npm 帳號未必被駭,但攻擊者透過 GitHub Actions 的 pull_request_target 工作流程找到了後門。他們基本上誘騙了 CI/CD 管線來為他們執行繁重的攻擊任務。
| 指標 | 詳細資訊 |
|---|---|
| 事件日期 | 2026 年 5 月 11 日 (19:20–19:26 UTC) |
| 受影響套件 | 42 個 @tanstack/* 套件 |
| 惡意版本 | 總計 84 個版本 |
| 來源證明狀態 | 有效的 SLSA Build Level 3 (已遭滲透) |
| 外洩方式 | Session/Oxen 網路 |
| 主要威脅組織 | TeamPCP / DeadCatx3 |
為何傳統安全機制失效?
多年來,我們一直告訴開發者要「檢查來源證明」和「驗證簽章」。但當建置環境本身就是謊言時,該怎麼辦?
由於滲透發生在源頭,自動化的信任機制完全按照其程式設計執行:它們驗證了一個恰好包含惡意負載的「受信任」建置。這不僅僅是 TanStack 的問題。我們在近期針對 Trivy、Checkmarx KICS、LiteLLM 和 Bitwarden CLI 的攻擊中也看到了類似的模式。顯然,我們正目睹一場針對 CI/CD 基礎設施核心的協調性、高階攻擊行動。
如果您使用了這些受感染的版本,官方安全公告 的建議很明確:請做最壞的打算。TeamPCP 與 Vect 勒索軟體組織合作的事實,更是雪上加霜。他們不僅僅是竊取資料,還在收集憑證,以便日後進行全面性的破壞攻擊。
清理工作:您現在需要做什麼
如果您的 CI/CD 管線接觸過這些套件,您必須假設整個環境都已遭滲透。以下是現實情況:
- 徹底清除(或至少進行審計): 將所有接觸過這些套件的 CI/CD 環境或開發機器視為犯罪現場。
- 輪替所有憑證: 不要只更改密碼。輪替所有可能被這些機器存取過的 API 金鑰、雲端 Token 和 SSH 金鑰。假設它們已經落入攻擊者手中。
- 追蹤蛛絲馬跡: 檢查您的 CI/CD 日誌,查看 5 月 11 日前後是否有任何
npm install活動或異常的對外網路流量。 - 清理您的依賴項: 更新至 官方套件註冊表追蹤 中列出的安全版本。不要假設您目前的 lockfile 是安全的。
- 防範橫向移動: 由於這些攻擊者與勒索軟體組織有關聯,請密切關注您的內部網路。他們正試圖從您的建置伺服器移動到生產環境。
自動化的脆弱性
「Mini Shai-Hulud」蠕蟲是一個嚴峻的提醒,顯示我們現代的建置管線是由脆弱的信任網所維繫。透過鎖定 GitHub Actions,TeamPCP 有效繞過了我們花費十年建立的邊界防禦。我們一直假設如果建置環境是自動化且經過「證明」的,它就一定是安全的。這次事件證明這種假設是一個危險的謬誤。
對於想要深入研究的人,TanStack router 儲存庫的問題追蹤器 深入探討了 OIDC Token 提取的實際運作方式。這是一份發人深省的讀物,說明了管線被操縱是多麼容易。
隨著調查持續進行,給開發社群的訊息很簡單:停止盲目信任管線。我們已經達到了一個地步,即建置環境的完整性不再能被假設——它必須經過驗證、審計,並以我們對待程式碼本身的懷疑態度來對待。請保持警惕,因為威脅組織絕對不會鬆懈。