本文へスキップ
MameTechNews
バックエンド

vLLM 0.31.0、マルチモーダル処理のメモリ枯渇を修正

## POINTS

  • 0.7.3以降は、1リクエストで共有プロセスのメモリを使い切れる。修正は0.31.0以降。
  • コード実行の経路はtrust-remote-codeと動的プロセッサがそろう構成に限られる。
  • APIキーだけでは/tokenizeは守られない。前段の認証がそこまで届いているかを確認する。

vLLMプロジェクトは10月6日、マルチモーダルのリクエストが処理パラメータを上書きできる欠陥を公開した。影響は0.7.3以降、修正は0.31.0以降。画像や動画の大きさ、パッチ数、フレーム数など、資源に効く値を遠隔のクライアントが指定でき、入力を拡大するプロセッサでは1リクエストでCPUまたはGPUのメモリを使い切り、APIサーバかワーカーを落とせる。落ちると、そのプロセスを共有する利用者全員が使えなくなる。APIキーは任意なので、前段で認証していない公開エンドポイントは未認証で届く。CVSS 3.1は7.5(High)。

同じ日に公開された別のアドバイザリは、条件が重なったときのコード実行である。動的なプロセッサを使い、運用者がtrust-remote-codeを有効にし、攻撃者がそのモデルリポジトリの別リビジョンを用意できるとき、リクエストが読み込む処理コードの版を差し替えられる。GitHub上の深刻度はHigh(8.1)。既定のtrust-remote-code無効は、この経路の対象外である。認証ミドルウェアは/tokenizeを守らず、APIキーを付けてもこのエンドポイントは素通しになる。

0.31.0では、リクエスト単位のmm_processor_kwargsとmedia_io_kwargsを既定で拒否する。信頼できるクライアントにだけ許すときは--trust-request-mm-kwargsを明示する。推論をインターネットへ出しているなら、0.31.0未満を残さない。前段の認証が/tokenizeまで覆っているかも確認する。