根據動察 Beating 監測,一款名為「Mini Shai-Hulud」(《沙丘》中的沙蟲)的竊密蠕蟲正在橫掃前端和 AI 後端生態。攻擊者 TeamPCP 在 5 月 12 日凌晨 3:20 至 3:26(UTC+8)劫持了 TanStack 官方發布流水線,向 npm 推送了 42 個官方包的 84 個惡意版本,包括千萬級周下載量的 @tanstack/react-router。隨後蠕蟲跨界擴散至 PyPI,最新受害名單包括亞馬遜 @opensearch-project/opensearch(npm,周下載 130 萬次)、Mistral 官方客戶端 mistralai 和 AI 護欄工具 guardrails-ai(均為 PyPI)。
惡意包看起來和正式發布完全一樣。攻擊者沒有竊取任何長期憑證,而是利用 GitHub Actions 配置漏洞劫持官方流水線,拿到合法的臨時發布權限。惡意包因此獲得了真實的 SLSA 構建來源簽名(provenance,一種證明「包確實由官方流水線產出」的防偽標籤)。開發者過去賴以信任的「有簽名 = 安全」邏輯被完全繞過。
更要命的是,卸載毒包遠遠不夠。Socket.dev 逆向分析顯示,蠕蟲安裝後會在後台把自己寫入 Claude Code 的執行鉤子(.claude/settings.json)和 VS Code 的任務配置(.vscode/tasks.json)。即便毒包已被刪除,只要開發者之後打開專案目錄或喚醒 AI 助手,惡意代碼就會自動復活。Python 端觸發門檻更低:開發者甚至無需調用任何函數,只要 import 受感染的包就會靜默激活竊密。
TeamPCP 在分發載荷的偽造域名 git-tanstack[.]com 上直接掛出嘲諷留言:「我們已經在線偷了兩個多小時憑證了,不過我就是來打個招呼 :^)」。蠕蟲仍在自傳播擴散。在上述窗口期安裝過受影響包的機器應按已失陷處理:立即輪換 AWS、GitHub、npm、SSH 等全部憑證,徹查 .claude/ 和 .vscode/ 目錄,從乾淨的 lockfile 重新安裝。
206.21萬 熱度
4.72萬 熱度
1.31億 熱度
79.46萬 熱度
12.35萬 熱度
刪了毒包也沒用:MiniShai-Hulud波及TanStack、OpenSearch和Mistral客戶端
根據動察 Beating 監測,一款名為「Mini Shai-Hulud」(《沙丘》中的沙蟲)的竊密蠕蟲正在橫掃前端和 AI 後端生態。攻擊者 TeamPCP 在 5 月 12 日凌晨 3:20 至 3:26(UTC+8)劫持了 TanStack 官方發布流水線,向 npm 推送了 42 個官方包的 84 個惡意版本,包括千萬級周下載量的 @tanstack/react-router。隨後蠕蟲跨界擴散至 PyPI,最新受害名單包括亞馬遜 @opensearch-project/opensearch(npm,周下載 130 萬次)、Mistral 官方客戶端 mistralai 和 AI 護欄工具 guardrails-ai(均為 PyPI)。
惡意包看起來和正式發布完全一樣。攻擊者沒有竊取任何長期憑證,而是利用 GitHub Actions 配置漏洞劫持官方流水線,拿到合法的臨時發布權限。惡意包因此獲得了真實的 SLSA 構建來源簽名(provenance,一種證明「包確實由官方流水線產出」的防偽標籤)。開發者過去賴以信任的「有簽名 = 安全」邏輯被完全繞過。
更要命的是,卸載毒包遠遠不夠。Socket.dev 逆向分析顯示,蠕蟲安裝後會在後台把自己寫入 Claude Code 的執行鉤子(.claude/settings.json)和 VS Code 的任務配置(.vscode/tasks.json)。即便毒包已被刪除,只要開發者之後打開專案目錄或喚醒 AI 助手,惡意代碼就會自動復活。Python 端觸發門檻更低:開發者甚至無需調用任何函數,只要 import 受感染的包就會靜默激活竊密。
TeamPCP 在分發載荷的偽造域名 git-tanstack[.]com 上直接掛出嘲諷留言:「我們已經在線偷了兩個多小時憑證了,不過我就是來打個招呼 :^)」。蠕蟲仍在自傳播擴散。在上述窗口期安裝過受影響包的機器應按已失陷處理:立即輪換 AWS、GitHub、npm、SSH 等全部憑證,徹查 .claude/ 和 .vscode/ 目錄,從乾淨的 lockfile 重新安裝。