これらのエンドポイントは、MCPサーバーを起動するために必要なCmd(コマンド)、args(引数)、env(環境変数)といったフィールドを含む完全なサーバー設定を、リクエストボディのJSONで受け付けます 。認証されたユーザーがこれらのエンドポイントを呼び出すと、LiteLLMは受け取ったCmdの値を、ホストマシン上でLiteLLMプロキシプロセスと同じ権限でサブプロセスとして実行してしまいます
。
当初、BerriAI社はこれを「認証が必要なリモートコード実行(RCE)」の脆弱性として公開しました。つまり、有効なAPIキーさえあれば、低権限の内部ユーザーであってもホスト上で任意のOSコマンドを実行できたのです 。しかし、この話はこれで終わりませんでした。
第二の脆弱性は、CVE-2026-48710、通称「BadHost」です。これは、FastAPIやvLLM、その他数千ものPythonウェブアプリケーションの基盤となっている軽量ASGIフレームワーク「Starlette」のHostヘッダー検証に存在する欠陥で、バージョン0.8.3から1.0.0までが影響を受けます 。
根本原因は、HTTPリクエストの経路を処理する「ルーティング層」と、アプリケーションが利用するURLを再構築する「URL再構築コード」との間にある「パーサーの不一致」です 。ASGIのルーティング層は、リクエストの生のHTTPパスに基づいて、どのエンドポイントがリクエストを処理するかを決定します。一方、認証ミドルウェアなどが参照する
request.urlは、Hostヘッダーの値をそのままリクエストパスと連結して再構築されており、適切な検証が行われていませんでした 。
攻撃者は、HTTPのHostヘッダーに?や#などのURI区切り文字を注入することで、request.url.pathを実際のリクエストパスと異なるものに見せかけることが可能になります 。これにより、認証ミドルウェアはリクエストを
/のような認証不要の安全なパスと誤認する一方、ASGIルーターは裏で本来の危険なエンドポイントへリクエストを転送してしまいます 。
LiteLLMの認証デコレーターは、request.url.pathを見てAPIキーの必要性を判断します。BadHostバイパスを悪用すると、攻撃者は認証ミドルウェアに無害なパスを見せつつ、ASGIルーターにLiteLLMの脆弱なMCPコマンドインジェクション・エンドポイントへリクエストを配送させることが可能になります 。
これにより、インターネット越しの攻撃と任意のOSコマンド実行を隔てていた唯一のアクセス制御の壁が完全に取り除かれます。資格情報もネットワークへの事前アクセスも一切持たない攻撃者が、細工したHTTPリクエストを1つ送信するだけで、LiteLLMプロキシホスト上でOSコマンドを実行できるのです 。Horizon3.aiはこの完全な連鎖が機能することを確認し、認証なしのリモートコード実行が可能であることから、最大深刻度のCVSS 10.0と評価しました
。
脆弱性の悪用に成功すると、攻撃者はLiteLLMプロキシプロセスの権限でコマンドを実行できるようになります。その後の脅威は急速に拡大します。
CISAが2026年6月8日にCVE-2026-42271をKEVカタログに追加したことは、この脆弱性がもはや理論上の脅威ではないことを明確に示しています。攻撃者は現在、実際にこの脆弱性を武器化し、悪用しています 。連邦政府の指令(Binding Operational Directive 22-01)により、米国のすべての連邦行政機関は、KEVに登録された脆弱性に対し、定められた期限内の修正が義務付けられています。CISAはまた、官民を問わずすべての組織に対し、KEVへの追加を緊急パッチ適用の最優先事項として扱うよう強く推奨しています
。
この連鎖攻撃への対策は、2つのコンポーネントの更新に加え、すでに侵害されている可能性を前提とした多層的な防御策が必要です。
HostヘッダーをURL仕様に照らして検証し、不正な文字を含むヘッダーを無視するようになり、認証バイパスの原因となるパス混乱の手法を防ぎます POST /mcp-rest/test/connectionPOST /mcp-rest/test/tools/listHostヘッダーを含むリクエストがないか調査してください CVSS 10.0という最大の深刻度、実環境での活発な悪用、そしてCISAによるKEV指定という状況を鑑みれば、LiteLLMまたはStarletteを利用したサービスを運用するすべての組織は、この事態を「緊急パッチ適用と資格情報の全面リセット」が必要な最重要インシデントとして対処する必要があります。悪用と情報窃取のタイムリミットは、すでに目前に迫っています。
Comments
0 comments