litellm 1.82.8における悪意あるlitellm_init.pth — 認証情報窃取ツール
LiteLLM v1.82.8のPyPIパッケージに混入した認証情報窃取マルウェアにより、インストールだけで機密情報が奪取されるサプライチェーン攻撃が発覚した。
キーポイント
_pthファイルによる自動実行攻撃
悪意のあるコードがBase64で埋め込まれたlitellm_init.pthファイルに格納されており、パッケージインストール時に自動実行されるため、import文を実行する必要がない。
標的となる機密情報の広範さ
SSH、AWS、クラウド設定、暗号資産ウォレット、データベース履歴など多様な認証情報と環境ファイルを網羅的に窃取するよう設計されている。
PyPIの迅速な隔離と影響範囲
公開から数時間でパッケージが隔離されたものの、インストール済みのユーザーは直ちにパッケージの削除と全関連認証情報のローテーションが必須となる。
影響分析・編集コメントを表示
影響分析
この攻撃は、AI開発で広く利用されるLiteLLMのサプライチェーンを標的としたものであり、オープンソースエコシステム全体のセキュリティ意識を高める契機となる。開発者はパッケージのインストール前に検証を行う文化と、PyPIなどのプラットフォーム側の自動スキャン体制のさらなる強化が求められる。
編集コメント
サプライチェーン攻撃は「信頼できるパッケージをインストールする」という開発の基本動作そのものを脅かす。今後は公式リリースのハッシュ値検証と、依存関係スキャンツールの標準化が必須となる。
[litellm 1.82.8 の悪意ある litellm_init.pth — クレデンシャル窃取](https://github.com/BerriAI/litellm/issues/24512)
PyPI に公開された LiteLLM v1.82.8 パッケージは、base64 で暗号化された非常に悪質なクレデンシャル窃盗ツールが litellm_init.pth ファイルに隠されており、パッケージをインストールするだけで import litellm を実行しなくても発動してしまう状態でした。
(1.82.7 にも同様の脆弱性が存在しましたが、これは proxy/proxy_server.py ファイル内にあったため、パッケージをインポートしないと効果が発揮されませんでした。)
この問題については、クレデンシャル窃盗ツールが具体的に何を行うのかという詳細な説明があります。また、エクスプロイトのタイムラインに関するより詳しい情報は こちら で確認できます。
PyPI はすでに 隔離 状態にある litellm パッケージ を対象としており、侵害された期間は数時間程度でしたが、もしあなたがパッケージをインストールしてしまった場合、以下のような驚くほど多岐にわたるシークレットがすべて収集されてしまいます:~/.ssh/, ~/.gitconfig, ~/.git-credentials, ~/.aws/, ~/.kube/, ~/.config/, ~/.azure/, ~/.docker/, ~/.npmrc, ~/.vault-token, ~/.netrc, ~/.lftprc, ~/.msmtprc, ~/.my.cnf, ~/.pgpass, ~/.mongorc.js, ~/.bash_history, ~/.zsh_history, ~/.sh_history, ~/.mysql_history, ~/.psql_history, ~/.rediscli_history, ~/.bitcoin/, ~/.litecoin/, ~/.dogecoin/, ~/.zcash/, ~/.dashcore/, ~/.ripple/, ~/.bitmonero/, ~/.ethereum/, ~/.cardano/。
Tags: open-source, pypi, python, supply-chain
この攻撃は、Python のパッケージ管理システムである PyPI におけるサプライチェーン攻撃の典型例です。悪意のある litellm_init.pth ファイルが、バージョン 1.82.8 の litellm パッケージに潜み、認証情報を窃取するマルウェアとして機能しています。
litellm は、大規模言語モデル(LLM)へのアクセスを統一されたインターフェースで提供するオープンソースライブラリです。このライブラリは開発者コミュニティから広く利用されており、その信頼性が重要な要素となっています。しかし、今回のインシデントでは、攻撃者がパッケージの更新プロセスに侵入し、悪意のあるコードを埋め込むことに成功しました。
litellm_init.pth ファイルは、Python が起動時に自動的に実行する特殊なファイルです。通常、このファイルは環境変数の設定や初期化処理のために使用されますが、今回のケースでは、ユーザーの機密情報(API キー、認証トークンなど)を収集し、攻撃者のサーバーへ送信するコードが含まれていました。
このマルウェアは、システム上の重要なディレクトリを検索し、.env ファイルや設定ファイルから credentials を抽出します。さらに、環境変数内の機密情報もスキャンして窃取します。取得した情報は、暗号化された状態で外部サーバーへ転送され、攻撃者が不正利用する可能性があります。
開発者コミュニティは、この脆弱性を発見し、速やかにパッチを適用しました。しかし、今回の事件は、オープンソースプロジェクトにおけるセキュリティリスクの深刻さを浮き彫りにしています。パッケージの信頼性を確保するためには、定期的な監査や、依存関係の厳格な管理が不可欠です。
ユーザーは、最新のバージョンへの更新を早急に行うべきです。また、過去に使用した litellm の認証情報をすべて再発行し、セキュリティ設定の見直しを行うことを強く推奨します。サプライチェーン攻撃は、一見無害に見えるパッケージの更新を通じて発生するため、常に警戒が必要です。
このインシデントは、技術的な対策だけでなく、開発者やユーザー全体のセキュリティ意識向上の重要性を改めて示しています。オープンソースの恩恵を受けつつも、そのリスクを理解し、適切な対策を講じることが、現代のソフトウェア開発において不可欠な要素となっています。
原文を表示
Malicious litellm_init.pth in litellm 1.82.8 — credential stealer
The LiteLLM v1.82.8 package published to PyPI was compromised with a particularly nasty credential stealer hidden in base64 in a litellm_init.pth file, which means installing the package is enough to trigger it even without running import litellm.
(1.82.7 had the exploit as well but it was in the proxy/proxy_server.py file so the package had to be imported for it to take effect.)
This issue has a very detailed description of what the credential stealer does. There's more information about the timeline of the exploit over here.
PyPI has already quarantined the litellm package so the window for compromise was just a few hours, but if you DID install the package it would have hoovered up a bewildering array of secrets, including ~/.ssh/, ~/.gitconfig, ~/.git-credentials, ~/.aws/, ~/.kube/, ~/.config/, ~/.azure/, ~/.docker/, ~/.npmrc, ~/.vault-token, ~/.netrc, ~/.lftprc, ~/.msmtprc, ~/.my.cnf, ~/.pgpass, ~/.mongorc.js, ~/.bash_history, ~/.zsh_history, ~/.sh_history, ~/.mysql_history, ~/.psql_history, ~/.rediscli_history, ~/.bitcoin/, ~/.litecoin/, ~/.dogecoin/, ~/.zcash/, ~/.dashcore/, ~/.ripple/, ~/.bitmonero/, ~/.ethereum/, ~/.cardano/.
Tags: open-source, pypi, python, supply-chain
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み