Wiz/LiteLLM:1.107.0 遭供應鏈植入竊密木馬——PyPI 與 Docker 已撤;建議鎖定 1.106.2 並輪換密鑰

Key takeaway

資安公司 Wiz 於二〇二六年十月二十一日披露,熱門開源 LLM 閘道套件 LiteLLM 的 1.107.0 版本在當日上傳至 PyPI 與 Docker,內含憑證竊取程式與可遠端載入後續程式碼的後門;開發商 BerriAI 確認涉事工程師 GitHub 帳戶的 OAuth 權杖遭竊,並已將惡意發行撤下。來源真實性已核對 Wiz 官方分析、BerriAI 維護者於 GitHub 保安議題之聲明,以及獨立研究報告。本文整理攻擊手法、影響範圍與企業應急要點。

Wiz/LiteLLM:1.107.0 遭供應鏈植入竊密木馬——PyPI 與 Docker 已撤;建議鎖定 1.106.2 並輪換密鑰

資安公司 Wiz 於二〇二六年十月二十一日披露,熱門開源 LLM 閘道套件 LiteLLM 的 1.107.0 版本在當日上傳至 PyPI 與 Docker,內含憑證竊取程式與可遠端載入後續程式碼的後門;開發商 BerriAI 確認涉事工程師 GitHub 帳戶的 OAuth 權杖遭竊,並已將惡意發行撤下。來源真實性已核對 Wiz 官方分析、BerriAI 維護者於 GitHub 保安議題之聲明,以及獨立研究報告。本文整理攻擊手法、影響範圍與企業應急要點。

Wiz/LiteLLM:1.107.0 遭供應鏈植入竊密木馬——PyPI 與 Docker 已撤;建議鎖定 1.106.2 並輪換密鑰

引言

LiteLLM 是企業與開發者常用的統一 LLM 代理/閘道函式庫,可把多個模型供應商接到同一 API。二〇二六年十月二十一日,惡意版本 1.107.0 出現在公開套件與映像倉庫;安裝後會在每次啟動 Python 直譯器時自動執行植入檔,蒐集雲端、瀏覽器與人工智能工具密鑰,並可透過 GitHub「死投」通道下載第二階段程式。來源真實性已驗證:以 Wiz 官方網誌為主,並交叉核對 BerriAI 維護者在公開保安議題中的 SEV-0 更新與根因說明。以下為改寫整理,不轉載完整技術附錄。

一、事件核心與時間線

技術細節

據 Wiz,惡意套件約於協調世界時十月二十一日十一時三十九分上傳 PyPI,約十三時二十分遭隔離;同日 Docker/GHCR 上的 v1.107.0 以及一度指向該映像的 latest、main-latest、main-stable 標籤亦受影響,其後遭移除。維護者與研究員一致建議目前安全版本為 1.106.2;若曾安裝 1.107.0,應假設外洩可能已成功並輪換密鑰。

BerriAI 維護者 Oliver 等人於公開議題更新指:惡意操作經三名工程師的 GitHub 帳戶進行,跡象顯示為遭竊的 GitHub CLI OAuth 權杖;攻擊者用其中一帳戶觸發 project-releaser、另一帳戶批准,相關權杖已撤銷。團隊亦曾暫時大幅縮減組織成員、切斷公開登錄與 GitHub 組織的信任連結,以降低再發布風險。

研究員還指出,正式建置曾取自外觀相似的偽冒倉庫路徑(組織名稱以連字號寫成 Berri-AI),在合法提交之上疊加植入 cook 目錄與建置指令;公開 v1.107.0 標籤本體並未包含木馬檔案,惡意內容是在建置樹被改寫後進入輪子與映像。

二、技術原理深度解析

惡意輪子在 site-packages 根目錄放下三個檔案:cook.pth、cook.py 與 sitecustomize.py。.pth 與 sitecustomize 會在 Python 啟動時自動載入,因此即使用戶從未 import litellm,同一環境內的 pip、IDE 語言伺服器或 CI 工作也可能觸發。

cook.py 解碼後執行名為 privcollect 的竊密模組,涵蓋瀏覽器密碼、雲端憑證(AWS/Azure/GCP/Kubernetes/Docker 等)、開發與 CI/CD 密鑰,以及 Claude、Cursor、Copilot、Gemini CLI 等人工智能工具設定;若主機設有 DATABASE_URL,更會嘗試傾印 LiteLLM Proxy 資料庫中的上游供應商金鑰表。資料以 AES 加密、RSA 包裹後,POST 至攻擊者控制的仿冒網域 litellm.dev(與專案正式網域 litellm.ai 不同)。

sitecustomize.py 則在 Linux/macOS 上嘗試常駐背景程序,定時讀取 GitHub 死投檔以取得指令伺服器位址,再下載並 exec 遠端程式碼。分析當下該死投多為空檔,第二階段未必已大規模下發,但攻擊者只需一次提交即可重新武裝所有已感染主機。Wiz 指同時濫用 .pth 與 sitecustomize.py 的雙重持久化手法,屬其觀測中較罕見的組合。

四、日常應用場景

1. 開發者與技術團隊

任何以 pip/Docker 拉取 LiteLLM 的開發機、CI runner 與代理閘道,均應檢查是否曾解析到 1.107.0;清理植入檔後再重裝鎖定版本,避免「先 pip 再清」再次觸發木馬。依賴鎖定檔與映像摘要(digest)釘選,比浮動 latest 更安全。

2. 企業與隱私敏感行業

若 LiteLLM Proxy 連線生產資料庫並存放多家模型供應商金鑰,一次感染可能等同整批 API 金鑰外洩。金融、醫療與法律等行業應立即輪換供應商金鑰、資料庫密碼與雲端角色憑證,並稽核安裝時段附近的異常 STS/雲端 API 呼叫。

3. 一般用戶

個人若只在隔離實驗環境短暫試用且無外連,風險較低;但若同一虛擬環境曾登入雲端或存放個人 API 金鑰,仍建議輪換並重建環境。

4. 香港與亞洲市場視角

香港不少中小企與外包團隊以開源閘道串接多模型、服務大中華與東南亞客戶。供應鏈攻擊不要求對手先攻破企業防火牆,只要開發或部署管道信任了遭污染的套件來源。本地團隊宜把「發布管線權杖防護、套件證明(attestations)、禁止未釘選 latest」納入雲端與人工智能落地檢查清單。

五、專業評價與潛在考量

優勢

Wiz 與獨立研究員提供可核對的時間線、雜湊與 IOC,BerriAI 亦以 SEV-0 節奏公開確認權杖遭竊與撤銷措施,方便防衛者對齊版本與輪換範圍,而非僅依賴傳聞。

需要留意的地方

根因調查仍指「尚未完全鎖定最初如何取得權杖」;刪除標籤亦不保證鏡像快取或依摘要拉取的舊映像已消失。讀者應以「曾安裝即假設外洩」處理,並等待維護者完整事後檢討與發布流程加固說明。

結語

開源 LLM 閘道一旦成為企業流量與金鑰匯流點,套件倉庫與發布權杖就等同生產邊界。香港團隊若正把多模型代理、私有閘道與雲端工作負載一併落地,宜同步強化供應鏈稽核與運行時防護。若需在香港規劃雲端遷移與網絡安全加固,可參考 YSK Limited 的雲端遷移與網絡安全服務(https://ysk.hk/services/cloud-security)。


參考來源

Related services & products