10月21日、LiteLLM のリリースパイプラインが侵害され、litellm==1.107.0 が PyPI と Docker Hub・GHCR へ配布された。当該成果物には資格情報窃取とリモートコード実行ローダーを含むコンパイル済みマルウェアが入る。10月23日付の根本原因分析は、5月に公開 LiteLLM-Labs/lite-harness へ誤コミットされた Agent Platform 管理キーが失効されず、10月10日に API から組織オーナーの GitHub CLI OAuth トークンが取られた起点、CI 秘密の workflow 経由 exfil、私有 BerriAI/project-releaser の source_owner 改変と類似 org Berri-AI/litellm からのビルド、盗んだ maintainer トークンによる本番ゲート承認までを一連の攻撃連鎖として整理している。

影響:

  • PyPI: litellm==1.107.0 の wheel 七件(11:39<51>〜11:40<13> UTC 公開、13<23> UTC まで配布)
  • Docker Hub: タグ v1.107.0・latest・main-latest・main-stable(11:46<56>〜14<20> UTC、侵害 digest sha256:1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339e)
  • GHCR: 同名タグ複数イメージ(11:46<56> UTC 以降、13<51> UTC まで利用可能)
  • 上記時間帯に unpinned の pip または該当 Docker タグで起動した OSS 利用者。1.106.2 以前の明示 pin 版は対象外
  • GitHub 公式 v1.107.0 ソースタグに悪意ファイルはなく、攻撃者管理 fork のコミット 20535d8f 由来ビルド
  • Enterprise 向け私有レジストリ配布は対象外

litellm==1.107.0 をインストールまたは実行した環境は侵害済みとして扱う。影響環境で Python や pip を起動すると cook.pth と sitecustomize.py が再実行されるため、先に pip で上書きしない。

対処:

  • 全 site-packages から cook.pth・cook.py・sitecustomize.py と対応する __pycache__ を shell から削除する
  • /tmp/remote_code_loader.lock を掴む detached python プロセスを終了する
  • litellm==1.107.0 を外し、litellm==1.106.2 など侵害前の明示版へ pin する。venv とコンテナイメージの作り直しを優先する
  • 当該ホストから outbound 可能だった場合、実行時に読めた資格情報は漏洩した前提でローテーションする(インスタンス IAM ロール、LiteLLM proxy DB 内の provider キーと master・virtual キー、DATABASE_URL パスワード、ホスト上プロセス環境変数の秘密)
  • 確認: pip show litellm、ファイルシステム上の litellm-1.107.0.dist-info・cook.pth・sitecustomize.py(未検出でもクリーンとは限らない)

#参考文献