何が起きたか
vLLM 0.22.0より前では、活性化関数ローダーはassertベースのセキュリティチェックを使用してモデル設定から読み込まれた関数名を検証していました。Pythonのassertステートメントは、インタプリタが最適化モード(python -OまたはPYTHONOPTIMIZE=1)で実行される場合は静かに削除されます。未認証の攻撃者は細工された活性化関数名を持つ悪意あるHuggingFaceモデルを公開できます。vLLMが最適化モードでモデルをロードする際、assertチェックはスキップされ、サーバー上で任意のコードが実行されます。CVSS 7.5 High。
なぜ重要か
これは新しい攻撃クラスを作成します。HuggingFace Hub上の中毒された公開モデルは、認証またはダイレクトネットワークアクセスなしでvLLMサーバーを静かにRCE できます。攻撃者はMLOpsパイプライン(新しいまたはファインチューニングされたモデルを自動プルする)をターゲットにすることができます。これは推論インフラストラクチャに対するモデルサプライチェーン攻撃です。
攻撃経路
攻撃者が細工された活性化関数設定を持つ悪意あるHuggingFaceモデルを公開。PYTHONOPTIMIZE=1で実行するvLLMがこれをロードし、認証なしで攻撃者コードを実行します
影響を受けるシステム
vLLM < 0.22.0(Python最適化を有効にして実行時)
緩和策
vLLM 0.22.0にアップグレードしてください。python -OまたはPYTHONOPTIMIZE=1でvLLMを実行しないでください。モデルソースを信頼できるレジストリに制限してください。Fix: https://github.com/vllm-project/vllm/commit/b3c7ffcab82c2439726f8cb213800f6f38c023d3