LiteLLM 1.107.0 遭供應鏈攻擊,惡意版本竊取憑證及金鑰
LiteLLM 1.107.0: ataque roba credenciales y claves
LiteLLM 官方發佈渠道遭入侵,受污染的 1.107.0 於 10 月 21 日上載至 PyPI 和 Docker Registry,惡意程式會竊取憑證並下載遠端程式碼。
文章梳理受污染套件的發布時段與 Python 啟動時自動執行的殘留檔案,説明一般卸載為何不能作為清理首步。
LiteLLM 1.107.0 發佈時暗藏憑證竊取程式,供公眾下載的供應鏈攻擊持續約兩小時。數以千計團隊使用 Python 程式庫 LiteLLM 作為連接數十個大型語言模型供應商的單一入口。LiteLLM 於10月21日發佈事故公告:其官方發佈渠道遭入侵,1.107.0 版本被上載至 PyPI 及 Docker 登錄庫,當中包含已編譯的惡意程式,可竊取憑證並載入遠端程式碼執行工具。
受影響的時間雖短,波及範圍卻很大。Datadog Security Labs 估計,這個程式庫每週下載量約為2,300萬次。任何曾安裝該版本而未固定使用其他版本,或在攻擊期間啟動官方 Docker 映像的用戶,都應視其系統已遭入侵。LiteLLM 在公告中明確提出這項要求。
LiteLLM 1.107.0 供應鏈攻擊:逐小時回顧
惡意套件於10月21日 UTC 11:39至13:23期間在 PyPI 上架,包含全部七個安裝檔案。標記為 v1.107.0、latest、main-latest 及 main-stable 的 Docker 映像,則於 UTC 11:46至14:20期間提供遭篡改的版本。LiteLLM 確認,所有較早版本均安全,受影響的發佈檔案已撤下,而使用其私人登錄庫的企業客戶則未受影響。
這項技術手法説明瞭事件何以嚴重。遭篡改的版本會在 Python 環境的套件資料夾中放入三個檔案:cook.pth、cook.py 及 sitecustomize.py。每次直譯器啟動時,Python 都會自動執行副檔名為 .pth 的檔案及 sitecustomize.py,即使應用程式從未匯入 LiteLLM 亦然。刪除套件資料夾並不會移除這三個檔案;開啟終端機並使用 pip 卸載套件,也會再次觸發它們。Datadog Security Labs 詳述,竊取程式會收集雲端憑證、SSH 金鑰、Git 和 PyPI 權杖、.env 檔案、瀏覽器密碼,以及 LiteLLM 本身儲存在資料庫中的供應商金鑰。
第二個元件會開啟後門:sitecustomize.py 每小時都會檢查 GitHub 儲存庫中的一個檔案,以取得網域,並從該處下載程式碼。Datadog 指出一項可稍為降低警戒程度的細節:該遠端檔案只包含測試值,未有觀察到任何第二階段載荷在實際環境中執行。
LiteLLM 1.107.0 的孿生儲存庫:只差一個連字號
入侵並非從原始碼入口發生。LiteLLM 解釋,攻擊者使用從三名工程師手上竊取的 GitHub 命令列介面憑證行事。其中一組憑證屬於組織擁有人,攻擊者藉此停用分支保護,並強行更改發佈流程,令其指向攻擊者控制的儲存庫 Berri-AI/litellm(名稱中有一個連字號),而非正版的 BerriAI/litellm。GitHub 上 LiteLLM 1.107.0 的官方版本標籤並不包含惡意檔案;遭下毒的發佈檔案是從這個孿生儲存庫建置,並沿用一貫的渠道簽署及發佈。
被盜 token 的來源指向一個令人難以接受的諷刺。公司觀察到 Claude Code 能夠將用戶的 GitHub token 嵌入回應內文,而這些內文會保存在一個暴露於互聯網的 LiteLLM 內部部署環境日誌中;當中出現了一個無人識別的帳戶。LiteLLM 認為,攻擊者從這些日誌中取走 token,之後又使用第三組憑證刪除了流程日誌。調查仍在進行中,這個最初環節尚未完全確認。
若已安裝 LiteLLM 1.107.0,該怎麼辦:先清理,切勿急於求成
官方建議的處理次序與一般做法相反。不要一開始就執行 pip install:在受影響環境中啟動任何 Python 程序,都會再次執行惡意檔案。首先,手動從每個系統套件目錄刪除 cook.pth、cook.py 和 sitecustomize.py,以及它們的編譯副本。接着,停止令 /tmp/remote_code_loader.lock 檔案持續被佔用的背景程序。然後才重新安裝,並固定使用 1.106.2 版本;指南本身更建議從頭重建虛擬環境和容器映像。
憑證輪替並非可選措施。若受影響裝置可連出互聯網,LiteLLM 要求假定資料已成功外洩:輪替執行個體身份角色、代理伺服器資料庫中儲存的每一個供應商密鑰、主密鑰和虛擬密鑰、資料庫密碼,以及該裝置上任何程序環境中的所有機密資料。搜尋 cook.pth 等痕跡有助確認是否受影響,但找不到標記檔案並不能證明裝置安全。
這是 LiteLLM 在 2026 年第二宗供應鏈入侵事件。Datadog 將 3 月涉及 1.82.7 和 1.82.8 版本的事件,與 TeamPCP 的活動聯繫起來,並指出該次行動與今次事件之間尚未確立任何關聯。同一套件一年內遭受兩次攻擊,為所有使用語言模型編寫程式的團隊帶來一個明確教訓:固定版本、檢查日誌,並把開發人員的 token 視作主密鑰。
來源:LiteLLM
相片:Help Net Security
來源:DEV Community · dev.to