本文へスキップ

LiteLLM 1.107.0が乗っ取られ、認証情報窃取マルウェアを配布

悪意あるLiteLLM(ライトLLM)1.107.0のwheelが2026年10月21日11時39分から13時23分(UTC)までPyPIで公開され、Pythonの起動のたびに認証情報窃取プログラムを実行しました。

著者 Tech AI Wire Team

3 分で読めます

「Contained: Oct 21, 2026 LiteLLM release v1.107.0 Compromised」と題したLiteLLMのインシデント報告ページ。執筆者とステータス行が見えます。

数字で見る

PyPI wheels carried the malware
7
UTC window the wheels were on PyPI
11:39-13:23
the clean version to reinstall
1.106.2

攻撃者はプロジェクトのリリースパイプラインを乗っ取り、2026年10月21日に悪意あるLiteLLM 1.107.0をPyPIとDockerに公開しました。これをインストールしたマシンでは、Pythonが起動するたびに認証情報を盗むプログラムが動きました。LiteLLMは影響を受けたチームに対し、秘密情報は盗まれたと考えてローテーションするよう求めています。

LiteLLMは、アプリとAIモデルのプロバイダーの間に入るオープンソースのツールです。そのプロキシサーバーはプロバイダーのAPIキーを保存するため、狙われやすい標的です。

何が、どれくらいの間公開されていたか

LiteLLMのインシデント報告は、影響を受けた成果物をすべて挙げています。GitHub上の公式v1.107.0ソースタグは無事です。リリースは偽のリポジトリBerri-AI/litellmからビルドされていました。StepSecurityによると、そこには攻撃者のコミットが10件含まれていました。

配布先影響を受けたもの期間(UTC、10月21日)
PyPIlitellm==1.107.0のwheel全7種(macOS、Linux、musl Linux、Windows)11時39分〜13時23分
Docker Hubv1.107.0、latest、main-latest、main-stable11時46分〜14時20分
GitHub Container Registrylitellm、litellm-database、litellm-non_rootの同じタグ11時46分〜13時51分

StepSecurityによると、バージョン1.106.2は安全で、1.107.0のリリース候補版も安全です。LiteLLMは、非公開のエンタープライズ版を使う顧客には影響がなかったとしています。

ペイロードの仕組み

このマルウェアは、誰かがLiteLLMをインポートするのを待ちませんでした。cook.pthとsitecustomize.pyという2つの起動フックを追加したのです。Pythonはその環境で起動するたびに、この2つを実行します。実行したコマンドがpipだけでも同じです。

最初のペイロードは「privcollect」と名乗る窃取プログラムだとStepSecurityは報告しています。クラウドのトークン、秘密鍵、AIツールの認証情報ファイル、ブラウザーのデータ、環境変数を集めます。保存されたLiteLLMプロキシの認証情報も盗みます。データは暗号化され、10月13日に登録されたドメインlitellm.devに送られます。

2つ目のペイロードは、隠れたバックグラウンドプロセスとして動くローダーです。1時間ごとにGitHub上のファイルからホスト名を読み取り、そのホストからコードをダウンロードして実行します。このファイルを置いていたGitHubアカウントは削除されました。それでも感染したマシンは同じアドレスを確認し続けます。

攻撃者はどう侵入したか

攻撃は3人のエンジニアのGitHubアカウントを通じて行われたと、LiteLLMのセキュリティ責任者Oliver JensenはThe Hacker Newsに語りました。1つの認証情報がブランチ保護を無効にし、別の1つが本番リリースを承認し、3つ目がワークフローの記録を削除しました。

LiteLLMのUTC 20時30分の更新では、攻撃者がログからGitHub CLIのトークンを入手したと考えているとしています。そのログは、インターネットから到達できた社内のLiteLLMデプロイのものでした。同社は、Claude CodeがユーザーのGitHub CLIトークンをレスポンス本文に含める場合があると指摘しています。その本文を記録していれば、トークンはログに残ります。Jensenは当初、侵入の方法はまだ特定できていないと話していました。

同じ日、GitHubは有効期限付きのGitHub CLIトークンのパブリックプレビューを開始しました。GitHubの変更履歴によると、漏れたトークンは「無期限に使えるのではなく、数時間以内に使えなくなります」。

開発者にとっての意味

LiteLLMを使っているなら、今日確認してください。手順はLiteLLMが示す順番どおりに進めます。

  • pip installから始めない。 起動フックはPythonが起動するたびに再び動きます。まず/tmp/remote_code_loader.lockを保持しているプロセスを見つけて止めてください。
  • フックを消してから入れ直す。 site-packagesからcook.pth、cook.py、sitecustomize.pyを削除します。そのうえでlitellm==1.106.2をインストールしてください。環境やイメージを一から作り直すほうがより安全です。
  • 秘密情報は盗まれたと考える。 LiteLLMは、1.107.0が外部とのインターネット通信が可能なホストで一度でも動いた場合、窃取は成功したとみなすべきだとしています。プロキシに保存したプロバイダーキー、マスターキーと仮想キー、データベースのパスワード、マシンのクラウドロールをローテーションしてください。
  • ダイジェストで固定する。 latestのようなタグは2時間以上、不正なイメージを指していました。イメージはダイジェストで、パッケージはハッシュで固定してください。
  • 自分のトークンの寿命も短くする。 gh 2.103.0以降では、gh auth login --expiringで有効期限付きのGitHub CLIトークンを使えます。記録されるリクエストやレスポンスの本文にトークンを残さないでください。

LiteLLMのリリースが乗っ取られたのは今年2回目で、3月にはバージョン1.82.7と1.82.8が被害に遭いました。保存されたプロバイダーキーは、先週のOpenCode Consoleで侵害、保存されたAIプロバイダーのキーが流出のおそれでも狙われていました。

出典

  1. Contained: Oct 21, 2026 LiteLLM release v1.107.0 Compromised - LiteLLM
  2. LiteLLM Compromised in Supply Chain Attack Delivering Credential Stealer and Backdoor - The Hacker News
  3. litellm 1.107.0 Compromised on PyPI: Backdoored Wheels Drop a Credential Stealer and an Hourly Remote Code Loader - StepSecurity
  4. GitHub CLI: Opt in to expiring, auto-refreshing OAuth tokens - GitHub Changelog
securitypythonllmsupply-chain

関連記事

ansi2html v1.9.4のGitHubリリースページ。FixesにCVE-2026-92973の修正「osc8: ensure proper escaping」が載っている。
開発ツール

SourceHutのビルドログXSS、アカウント乗っ取りが可能に

細工したビルドログでSourceHutユーザーのブラウザ上でスクリプトを実行できるクロスサイトスクリプティングの欠陥です。ansi2html 1.9.4がバージョン1.7.0から1.9.3に影響したCVE-2026-92973を修正しました。

バージョン153で最新の状態になっているChromeの「Chromeについて」ページ。隣に設定メニューが表示されている。
開発ツール

Chrome、メジャー更新を2週間ごとに

Chrome 153から、メジャーマイルストーンの間隔が4週間から2週間になります。Chrome 149と150だけで1,072件のセキュリティバグを修正しました。大規模言語モデル(LLM)が脆弱性を大量に見つけています。