悪意のあるGGUFモデルがSGLangサーバーでリモートコード実行を引き起こす可能性

セキュリティ研究者は、大規模言語モデルを実行するために広く使用されているフレームワークであるSGLangに、脅威アクターが推論サーバーを侵害することを可能にする重大な脆弱性を発見しました。

CVE-2026-5760として追跡されるこの欠陥は、サーバーが悪意のあるGGUFモデルファイルをロードする場合、リモートコード実行(RCE)を可能にします。

攻撃者は、HuggingFaceなどのプラットフォームでウェポン化されたモデルをホストし、被害者を騙してそれをデプロイさせることで、基礎となるホストマシンを完全に制御することができます。

この脆弱性は、SGLangのリランキングエンドポイントにおけるサーバーサイドテンプレートインジェクション(SSTI)の見落としから生じています。

フレームワークがインポートされたモデルから直接供給されるチャットテンプレートを処理する場合、Jinja2の安全でない設定を使用します。

具体的には、serving_rerank.pyの脆弱なコードパスは、はるかに安全なImmutableSandboxedEnvironmentではなく、標準のJinja2.Environment()関数を使用しています。

この重大なエラーは、テンプレートがサンドボックスなしでレンダリングされることを意味し、埋め込まれたPythonコマンドがデータを処理するサーバー上で直接実行されることを許可します。

攻撃実行ステップ

最近Githubで公開された概念実証エクスプロイトは、攻撃者がこのサンドボックスなし環境を活用してコード実行を達成する方法を実証しています:

  • 攻撃者は、ウェポン化されたtokenizer.chat_templateを含む悪意のあるGGUFモデルファイルを作成します。
  • テンプレートは、SGLangのQwen3リランカー検出を活動化させるように設計された特定のトリガーフレーズ(「答えは’yes’または’no’だけです」)が組み込まれています。
  • 無防備な被害者が侵害されたモデルをダウンロードしてSGLang環境にロードすると、トラップが設定されます。
  • /v1/rerank エンドポイントへのAPIリクエストが行われると、フレームワークは脆弱なJinja2レンダリングパスを通じてリクエストをルーティングします。
  • SSTIペイロードは既知のPythonバイパス技術を使用してテンプレートコンテキストをエスケープし、ホストサーバー上で任意のオペレーティングシステムコマンドを正常に実行します。

この脆弱性は、AI基盤内で増加するサプライチェーンリスク、特にフレームワークが信頼されていないモデルメタデータをどのように処理するかに関する懸念を強調しています。

この欠陥は、CWE-1336(テンプレートエンジンで使用される特別な要素の不適切な無効化)およびCWE-94(コード生成の不適切な制御)に該当します。

以前にllama-cpp-pythonライブラリに影響を与えた悪名高い「Llama Drama」バグ(CVE-2024-34359)と同じ脆弱性クラスを共有しています。

さらに、vLLM(CVE-2025-61620)の最近のサービス妨害脆弱性と攻撃面を共有しています。

SGLangバージョン0.5.9を実行している管理者は、サンドボックス化されたテンプレートレンダリングを実装するパッチが適用されるまで、公開リポジトリから未検証のGGUFモデルをダウンロードしないように極度の注意を払う必要があります。

翻訳元: https://gbhackers.com/malicious-gguf-models-could-trigger-rce/

ソース: gbhackers.com