技術的な説明
vLLM バージョン0.8.0以降は、VideoMediaIO.load_base64()メソッドにおけるメモリ不足のサービス拒否攻撃に対して脆弱です。video/jpegデータURLを処理する際、このメソッドはbase64データ文字列をカンマで分割してJPEGフレームを抽出しますが、フレーム数に制限を課しません。攻撃者は数千のカンマ区切りのbase64 JPEGフレームを含む単一のAPIリクエストを作成でき、サーバーはサーバーがクラッシュするまですべてのフレームをメモリにデコードさせられます。この脆弱性は、認証なしのOpenAI互換チャット完了APIエンドポイント経由でアクセス可能です。
攻撃経路
数千のカンマ区切りのbase64エンコードされた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モニタリングを有効にして攻撃の試みを検出します。