HNに知らせる: PyPIの「Litellm 1.82.7」と「Litellm 1.82.8」が侵害されています
概要
- litellm==1.82.8のPyPIホイールに 悪意のある.pthファイル が含まれている
- Python起動時に 自動で情報窃取スクリプト が実行されるサプライチェーン攻撃
- システム・クラウド・CI/CD・ウォレット等の 多様な機密情報を収集し外部送信
- 影響範囲は ローカル・本番・CI/CD・Docker環境全般
- 直ちにバージョン削除・認証情報のローテーション が推奨される重大インシデント
litellm==1.82.8 PyPIパッケージのサプライチェーン攻撃概要
- litellm==1.82.8 のPyPIホイールに litellm_init.pth(34,628バイト) という悪意のあるファイルが含まれる
- .pthファイル はPythonインタプリタ起動時に自動実行される仕組みを悪用
- import litellm せずとも、インストールしただけでスクリプトが動作
- RECORDファイル にもlitellm_init.pthが記載されており、公式配布物に見せかけている
悪意のある挙動の詳細
- litellm_init.pth 内で base64で二重エンコード されたペイロードをデコード・実行
- 情報収集段階(Stage 1)
- システム情報(hostname, whoami, uname, IPアドレス等)収集
- 環境変数 (APIキー・シークレット・トークン等)全取得
- SSH鍵・Git/AWS/GCP/Azure/Kubernetes/CI/CD/DB/ウォレット/SSLキー 等の幅広いファイルを窃取
- シェル履歴・Webhook URL も対象
- 暗号化・外部送信段階(Stage 2)
- 収集データを一時ファイルに保存
- openssl rand で32バイトのAES-256セッションキー生成
- openssl enc でデータをAES-256-CBC暗号化
- セッションキーを ハードコードされた4096bit RSA公開鍵 で暗号化
- 両ファイルを tpcp.tar.gz にまとめ
- curlでhttps://models.litellm.cloud/ (litellm.aiではない)へPOST送信
- ステルス性
- base64二重エンコード でgrep等による検知を困難化
- .pthファイル による自動実行で気づきにくい
技術的ポイント
- .pthファイル はsite-packages/に置かれると Python起動時に必ず評価 される
- 公式ドメイン(litellm.ai)と異なる litellm.cloudへのデータ送信
- RSA公開鍵 でセッションキー暗号化、復号は攻撃者のみ可能
影響範囲と被害
- litellm==1.82.8 インストール済みの全環境が 情報漏洩リスク
- ローカル開発機・CI/CDパイプライン・Docker・本番サーバー 全て該当
- 環境変数・SSH鍵・クラウド認証情報・CI/CDシークレット等 の流出
- 攻撃者が全ての機密情報にアクセス可能 となる深刻なインシデント
推奨対応策
- PyPI管理者
- litellm==1.82.8の 即時Yank/削除
- ユーザー
- site-packages/にlitellm_init.pth が存在するか確認
- 該当バージョンをインストールした全システムの認証情報をローテーション
- pip uninstall litellm および .pthファイルの手動削除 を推奨
- BerriAI
- PyPI公開用認証情報やCI/CDパイプラインの侵害有無を精査
その他・追加情報
- 2026-03-24 にUbuntu 24.04(Docker)+Python 3.13環境で発見
- 直近、proxy_server.pyにもbase64エンコードされた不審なコード追加の報告有
- forkbomb挙動 や異常な動作が観測されている
- https://github.com/BerriAI/litellm/issues/24512 で追加報告あり
まとめ・注意喚起
- litellm==1.82.8 は サプライチェーン攻撃により完全に危険な状態
- 即時アンインストール・認証情報の全面ローテーション が必須
- PyPI等の公式パッケージでも油断せず、異常挙動時は即時調査・報告体制を強化