技術的な説明
vLLM バージョン 0.8.0 以降は、VideoMediaIO.load_base64() メソッドのメモリ不足によるサービス拒否攻撃に対して脆弱です。video/jpeg データ URL を処理する際、メソッドはフレームカウント制限を強制せずにコンマでベース64データ文字列を分割して JPEG フレームを抽出します。攻撃者は数千のコンマ区切りベース64 JPEG フレームを含む単一の API リクエストを作成でき、サーバーがすべてのフレームをメモリにデコードしてクラッシュするまで続きます。この脆弱性は、認証されていない OpenAI 互換チャット補完 API エンドポイント経由でアクセス可能です。
攻撃経路
数千のコンマ区切りベース64 エンコード JPEG フレームを含む細工されたvideo/jpeg データ URL を使用して、vLLM /v1/chat/completions エンドポイントへの単一の認証なし HTTP リクエスト。認証レイヤーなしで API が公開されている場合 (自己ホスト展開で一般的)、認証は不要です。
影響を受けるシステム
vLLM 0.8.0 および開示日までのすべての以降のバージョン。vLLM は最も広く展開されているオープンソース LLM 推論サーバーの1つで、エンタープライズおよびクラウド環境で Llama、Mistral、Qwen などのモデルをホストするために使用されます。
緩和策
vLLM リポジトリのコミット 58ee614 からパッチを適用します。即座にパッチが適用できない場合: vLLM 推論エンドポイントを認証された API ゲートウェイの背後に配置し、ビデオデータ URL が vLLM プロセスに到達する前にリクエストサイズ制限と入力検証を適用し、攻撃の試みを検出するために OOM モニタリングを有効にします。