何が起きたか
GitHubアドバイザリ(10月21日公開)に対して検証済み: vLLMは、trust_remote_codeがオンの場合に、クライアントがモデルの動的プロセッサコードのどのリビジョンをインポートするかを制御できるようにし、未認証の/tokenizeエンドポイントがトリガーとなります — 単一のマルチモーダルリクエストで、サービングプロセス内で任意のPythonが実行されます。シードのNVD説明とアドバイザリは、影響範囲0.7.3–<0.31.0とCWE-94コードインジェクションについて一致しています。
なぜ重要か
公開vLLMサービングエンドポイントは、多くの場合インターネットから到達可能です(OpenAI互換の/v1および/tokenizeが公開されています)。これにより、リモートリクエストが推論ホストでの完全なコード実行に変わります: モデルウェイトの窃取、env/設定からのプロバイダーAPIキーの窃取、GPUクラスターへの横移動。
攻撃経路
未認証の攻撃者は、mm_processor_kwargs.code_revisionを運ぶマルチモーダルリクエストを送信します; vLLMはそのリクエスト提供のリビジョンをTransformers AutoProcessor.from_pretrainedに転送します。trust_remote_codeが有効で、提供されたモデルリポジトリに悪意のあるリビジョンが含まれている場合、リクエストは未認証の/tokenizeエンドポイントを介してvLLM APIプロセス内で任意のPythonを実行します。
影響を受けるシステム
vLLM 0.7.3 – <0.31.0 (0.31.0で修正)
緩和策
vLLMを0.31.0にアップグレードしてください(より広範なマルチモーダルウェーブには0.32.0を推奨); 可能な場合はtrust_remote_codeを無効化するか、プロセッサコードを固定されたレビュー済みリビジョンに制限してください。アドバイザリ: GHSA-f623-hjm8-5wg5。