LiteLLM compromised again: infostealer and RAT found in version 1.107.0
【なぜ重要か】 LLMリクエストのルーティングに広く使われているOSSプロキシ「LiteLLM」のバージョン1.107.0が、攻撃者によってPyPI配布のPythonホイールおよび公式Dockerイメージ双方において侵害されていたことが判明した。このパッケージをインストールした環境では、クラウド認証情報・APIキー・ブラウザ保存パスワードなどが既に窃取されている可能性があり、さらに攻撃者が任意のコ...
【なぜ重要か】 LLMリクエストのルーティングに広く使われているOSSプロキシ「LiteLLM」のバージョン1.107.0が、攻撃者によってPyPI配布のPythonホイールおよび公式Dockerイメージ双方において侵害されていたことが判明した。このパッケージをインストールした環境では、クラウド認証情報・APIキー・ブラウザ保存パスワードなどが既に窃取されている可能性があり、さらに攻撃者が任意のコードをリモート実行できる状態が継続している恐れがある。日本国内でAI開発基盤としてLiteLLMを利用しているエンジニアやDevOpsチームは、早急な対応が必要である。
【ポイント】
data = "cook"ディレクティブを悪用し、ソースリポジトリには存在しないcook/ディレクトリをビルド環境に作成。コンパイル済みホイールのみに3つの悪意あるファイル(cook.pth・cook.py・sitecustomize.py)をサイレントに混入させた。PyPIの全プラットフォーム向けホイールおよびDockerイメージ(latest・main-latest・main-stableタグ含む)が対象となった。cook.pthが.pthファイルの仕組みを利用してPythonインタープリタ起動のたびにcook.pyを自動実行する。cook.pyはホスト名・OS情報・実行中プロセス・ChromiumベースブラウザのAES復号済みパスワード・SSH秘密鍵・シェル履歴・AWS/GCP/Azureの認証情報・Kubernetesサービスアカウントトークン・CI/CDシークレット・Claude/Cursor/Copilotなど各種AI開発ツールの設定ファイル・GPG/TLS秘密鍵・全環境変数・LiteLLMデータベース内のAPIキーなどを収集し、RSA-4096公開鍵で暗号化の上http://www[.]litellm[.]dev/healthcheck(攻撃者管理のドメイン)へPOST送信する。sitecustomize.pyはPythonがユーザーコード実行前に自動ロードするファイル名を悪用し、バックグラウンドデーモンを起動する。デーモンは1時間ごとにGitHubのデッドドロップリポジトリからC2ドメインを取得し、そのエンドポイントから取得したPythonペイロードをサンドボックスなしで実行する。これにより攻撃者は感染済みの全マシンに対し任意のコードを無期限かつオンデマンドで実行できる。/tmp/.pc_once_*ファイルが存在する場合は情報窃取が既に実行済み、/tmp/remote_code_loader.lockが存在する場合はC2デーモンが稼働中または稼働していたことを示す。対象バージョンをpip installしたか、当該Dockerイメージを実行した全環境で確認が必要。【まとめ】 LiteLLM 1.107.0は情報窃取マルウェアとRATが同梱された悪意あるパッケージであり、インストールした環境のあらゆる認証情報が漏洩したと見なして対応すべきである。該当バージョンの使用停止・認証情報の即時ローテーション・感染確認ファイルの有無の確認を最優先で実施すること。
原文を読む
Aikido Security Blog
英語で詳細な技術情報を確認