刪了毒包也沒用:MiniShai-Hulud波及TanStack、OpenSearch和Mistral客戶端

律动
一款名為「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 重新安裝。 [動察 Beating]