LiteLLM Python 程式庫的開發者報告稱,該程式庫每月下載量高達 9,500 萬次,過去 24 小時內下載量更是達到 350 萬次。攻擊者截獲了維護者的憑證,並在 PyPI 上發布了兩個惡意版本——1.82.7 和 1.82.8——其中包含竊取使用者係統金鑰和密碼的程式碼。目前,這兩個惡意版本已從 PyPI 中移除,項目也已暫停運營,等待調查結果。
由於持續整合系統中使用了 trivy 依賴項安全掃描器,攻擊者取得了 LiteLLM 在 PyPI 上的帳戶存取權杖。在此之前,2 月下旬,攻擊者利用 Trivy 持續整合系統中執行的 pull_request_target 處理程序中的一個漏洞,獲得了對 Trivy 專案基礎設施的存取權限。在攻破系統後,攻擊者發布了惡意 Trivy 0.69-0.69 版本,偽造了 trivy-action GitHub Action 處理程序,並部署了一個包含 Trivy 的修改版 Docker 映像。
3月24日上午11:30(莫斯科時間),攻擊者利用截獲的LiteLLM維護者(krrishdholakia)的憑證,繞過官方GitHub CI/CD系統,直接將惡意版本的LiteLLM 1.82.7和1.82.8發佈到PyPI。該專案的GitHub倉庫未受影響;惡意活動僅在PyPI上被發現。在LiteLLM 1.82.7版本中,惡意程式碼被嵌入到litellm/proxy/proxy_server.py檔案中,並在導入litellm.proxy時啟動。在1.82.8版本中,惡意程式碼被包含在site-packages/litellm_init.pth檔案中,並在proxy_server.py檔案中新增了一個以base64格式打包並在每次啟動時啟動的處理程序。
新增的惡意程式碼掃描並發送了敏感資料。發送的資料包括 SSH 和 SSL/TLS 金鑰、環境變數內容、AWS、GCP、Azure 和 K8s 憑證、加密錢包金鑰、資料庫管理系統密碼、命令解釋器操作歷史記錄以及來自 Git、CI/CD、套件管理器和 Docker 的設定檔。偵測到的資料使用 AES-256-CBC 和 RSA-4096 加密,並透過 HTTP POST 請求傳送至網站「https://models.litellm.cloud/」。域 litellm.cloud 的註冊時間比惡意程式發佈時間早幾個小時)。
建議 LiteLLM 使用者確保 site-packages 目錄中不存在 litellm_init.pth 文件,如果安裝 1.82.7 或 1.82.8 版本,則更新所有金鑰和憑證,在依賴項載入參數中鎖定特定的 LiteLLM 版本,並檢查他們正在使用的 LiteLLM 版本是否與 GitHub 上的發布程式碼一致。
來源: opennet.ru
