OWN NEWS GATHER
← 戻る
The Hacker News

Python向けライブラリ「LiteLLM」にサプライチェーン攻撃、認証情報窃取ツールとバックドアが混入

要点

  • 人気のPython向けLLMライブラリ「LiteLLM」のバージョン1.107.0がサプライチェーン攻撃を受け、認証情報窃取機能とバックドアが混入した。

  • 攻撃者は開発者3名のGitHub CLI OAuthトークンを悪用し、悪意あるリリースの実行と承認を行っていた。

  • 影響を受けるパッケージはPyPIで隔離され、悪意あるDockerイメージの削除やトークン失効などの対処が行われた。

  • マルウェアはPython起動時に自動実行され、クラウド認証情報や秘密鍵、AI開発ツールの設定などを外部送信する仕組みだった。

  • 影響を受けた利用者に対し、露出した認証情報の失効・再発行とバージョン1.106.2への固定が推奨されている。

  • 複数の大規模言語モデル(LLM)への接続を統一的に扱う人気Pythonライブラリ「LiteLLM」が、ソフトウェアサプライチェーン攻撃(ソフトウェアの配布経路を侵害して不正コードを仕込む手法)を受けたことが明らかになった。SafeDep、Socket、StepSecurity、Upwindなどのセキュリティ企業が報告したところによると、バージョン1.107.0に認証情報窃取ツールとバックドア(不正侵入のための裏口)が仕込まれていたという。該当パッケージはPyPI(Python公式のパッケージ管理システム)上で隔離され、悪意あるDockerイメージも削除されている。

不正リリースの経緯とアカウント侵害

LiteLLMのセキュリティディレクターを務めるOliver Jensen氏によると、悪意あるリリースを公開するに至った初期の侵入経路を特定するため、現在も調査が進められている。

同氏の説明によれば、今回の不正な操作はエンジニア3名のGitHubアカウントを経由して実行されていた。盗まれたGitHub CLIのOAuthトークン(コマンドラインからの認証に用いる権限データ)が悪用されたと見られ、攻撃者は1名のアカウントで自動リリース「project-releaser」の実行をトリガーし、別のアカウントでそれを承認していた。

関与したトークンはすべて失効されたが、トークン取得経路が未特定のため、GitHubアカウントへのさらなる不正アクセスがないとは断言できない状態だという。LiteLLMは一時的な緩和策として影響のない1名を除く全ユーザーをGitHub Organizationから除外したほか、さらなる悪意ある公開を防ぐため、公開レジストリ側で組織への信頼リンクを削除したとしている。

混入したマルウェアの構造と自動実行の仕組み

セキュリティ各社の解析によると、悪意あるバージョン1.107.0には、クラウド認証情報や秘密鍵、AIツールの認証ファイルなどを収集する機能が仕込まれていた。

影響を受けたのはmacOS、Linux、Windows向けのwheel形式パッケージ7種と、改ざんされた設定ファイルを含むソース配布物「litellm-1.107.0.tar.gz」である(ソース配布物自体にペイロード本体は含まれない)。

StepSecurityによれば、内部には「privcollect」と呼ばれる認証情報スティーラーと、1時間ごとにGitHub経由で任意のPythonコードを取得・実行するバックドアという2種類の不正コードが含まれていた。

マルウェアはLiteLLMのimport前であっても、Pythonインタープリター起動時に自動実行される設計だった。これはパス設定ファイル「cook.pth」(Python起動時に検索パスを自動追加するファイル)内の「import cook」という1行を悪用した仕組みである。

収集対象はクラウドトークン、秘密鍵、AIツールの認証JSON、ブラウザデータ、環境変数のほか、LiteLLMプロキシ内の設定や認証情報にも及ぶ。データはGZIP圧縮されたTARアーカイブとして「litellm[.]dev/healthcheck」へHTTP POST送信される設計だった。さらに、外部GitHubリポジトリ(letters9813、現在は404)からドメインを読み込み、追加コードを取得・実行する機能も備えていた。

過去の手口との共通点と推奨対策

パス設定ファイル(.pth)を利用してPython起動時に不正コードを実行する手口は、2026年3月の「TeamPCP」によるサプライチェーン攻撃でもLiteLLMで同様に確認されていた。

悪意あるバージョンをダウンロードした利用者には、クリーンな環境から認証情報を失効・再発行し、ダイジェスト値(ハッシュ値)を指定してバージョン1.106.2に固定することが推奨されている。

元URL