PyPI 上的 1.107.0 已被下架
SafeDep 在 2026 年 10 月 21 日指出:PyPI 上的 litellm==1.107.0 安裝後會放入憑證竊取程式與遠端程式碼執行後門。Linux、macOS、Windows 共 七個 wheel 都有問題;上游 GitHub 原始碼沒有這些檔案。PyPI 之後已移除該版本。
乾淨版本是 1.106.2、1.107.0rc1、1.107.0rc2。1.107.0 鎖定的伴隨套件 litellm-proxy-extras==0.4.110 與 litellm-enterprise==0.1.78 也是乾淨的。
本文只整理「你有沒有裝到壞版本、裝到了怎麼查跡象」,不是攻擊教學,也不重現惡意程式細節。

先確認自己裝的版本
在每個用到 LiteLLM 的環境執行:
pip show litellm
或:
python -c "import litellm; print(litellm.__version__)"
若版本是 1.107.0,應立刻停用該環境、改裝 SafeDep 標示的乾淨版本,並假設憑證可能已外洩,開始輪替金鑰。若是 1.106.2 或兩個 rc,依目前公開資訊可視為乾淨發行。
SafeDep 也比對過:惡意 sdist 的 pyproject.toml 多了 data = "cook",會把植入檔打進 wheel;公開的 BerriAI/litellm 提交紀錄裡找不到這行。他們評估(中至高信心)較像是私有釋出管線被改過的來源建出 wheel,真正原因仍需 BerriAI 內部紀錄確認。

這三個檔名代表被植入
安裝惡意 1.107.0 後,site-packages 會多出三個檔案。Python 一啟動就會載入其中兩個,即使該行程從未 import litellm:
| 檔案 | SafeDep 的說明(摘要) |
|---|---|
cook.pth |
觸發載入 cook.py |
cook.py |
憑證竊取:蒐集 SSH、雲端、CI/CD、AI 工具 token、瀏覽器密碼,以及 LiteLLM proxy 資料庫裡的 LLM 金鑰等,加密後外送 |
sitecustomize.py |
背景常駐:每小時再跑竊取,並依遠端設定下載執行程式碼 |
自查時請只做唯讀檢查,例如在對應環境的 site-packages 搜尋是否存在上述檔名;不要執行來路不明的腳本「測試」惡意行為。
SafeDep 列出的其他跡象包括:/tmp/.pc_once_72129118c59f5636c0bb、/tmp/remote_code_loader.lock、環境變數 PRIVCOLLECT_ACTIVE=1,以及異常的脫離式 Python 常駐行程。網路面曾指向 www.litellm[.]dev 與已刪除的 GitHub 帳號 letters9813;該帳號約在釋出兩小時後(13:40 UTC)消失。

時序與你該做的事
SafeDep 整理的當日(UTC)時序摘要:
| 時間(2026-10-21 UTC) | 事件 |
|---|---|
| 10:44 | 乾淨的 1.106.2 上傳 PyPI |
| 11:20 至 11:37 | 惡意 1.107.0 wheels 建置 |
| 11:39 至 11:40 | 1.107.0 上傳 PyPI(8 個檔案) |
| 11:50 | GitHub release v1.107.0 發布 |
| 13:40 | 觀察到 1.107.0 已從 PyPI 消失,letters9813 帳號刪除 |
若你曾在上述窗口安裝 1.107.0,建議依內部資安流程:隔離主機、移除植入檔與改裝乾淨版本、輪替雲端/SCM/AI 工具/瀏覽器相關密鑰,並檢查是否有異常外連或常駐行程。若從不確定,把 SafeDep 文中的檔名與雜湊表交給資安同事對照即可。
