Trusted Design

CVE-2026-48710 の詳細

CVEの情報

説明:
Starlette is a lightweight ASGI framework/toolkit. Prior to version 1.0.1, the HTTP `Host` request header was not validated before being used to reconstruct `request.url`. Because the routing algorithm relies on the raw HTTP path while `request.url` is rebuilt from the `Host` header, a malformed header could make `request.url.path` differ from the path that was actually requested. Middleware and endpoints that apply security restrictions based on `request.url` (rather than the raw `scope` path) could therefore be bypassed. Users should upgrade to a version greater than or equal to version 1.0.1, which validates the `Host` header against the grammar of RFC 9112 §3.2 / RFC 3986 §3.2.2 when constructing `request.url` and falls back to `scope["server"]` for malformed values.

CVE更新日: 2026-05-26 22:16:44.020000

CVSSバージョン: 3.1

CVSSスコア: 6.5

KEVの情報

KEV更新日: 2026-09-02

EPSSの情報

EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。

EPSSスコア: 0.070560000

EPSS更新日: 2026-10-16 00:00:00

SSVCの情報

SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。

Exploitation: active

Technical Impact: medium

Automatable: True

AIを使った解説

解説:

CVE-2026-48710に関する調査結果を以下に解説します。

1. 脆弱性の概要

CVE-2026-48710は、Pythonの軽量ASGIフレームワークであるStarletteにおける認証バイパスの脆弱性です。この脆弱性は、「BadHost」というニックネームでも知られています。Starletteのバージョン1.0.1より前では、HTTPのHostリクエストヘッダーが検証されずにrequest.urlの再構築に使用されていました。

Starletteのルーティングアルゴリズムが生のHTTPパス(scope["path"])に依存する一方で、request.urlはHostヘッダーから再構築されるため、不正な形式のHostヘッダー(例: /, ?, #などの予約文字を含む)を挿入すると、request.url.pathが実際にリクエストされたパスと異なる状況が発生します。これにより、request.urlに基づいてセキュリティ制限を適用するミドルウェアやエンドポイントが迂回される可能性があります。

この脆弱性は、FastAPIなどのStarletteを基盤とする多くのWebスタックや、AI/LLM関連のサービスに影響を与えます。

1.1 影響

この脆弱性により、パスベースのセキュリティ制御における完全な認証バイパスが発生します。攻撃者は認証なしで、保護されたリソースにアクセスできる可能性があります。

さらに、特定のデプロイパターンでは、このバイパスがServer-Side Request Forgery (SSRF) に連鎖し、保護されたエンドポイントがモデルの読み込みやツール実行を公開している場合には、リモートコード実行 (RCE) につながる可能性も指摘されています。

特に、AIサービス、LLM推論サーバー、コーディングアシスタント、チャットエージェント、MCPサーバー、OpenAI互換APIプロキシ、およびFastAPI上に構築されたAIエージェントフレームワークなど、幅広いAIスタックが影響を受けます。

1.2 深刻度

  • StarletteのメンテナーおよびNISTによるCVSS v3.1基本スコアは6.5(中程度)です。
  • しかし、X41 D-SecやSecwestなどのセキュリティ研究者は、AIツール展開における実際の脅威と実世界での影響は、このスコアが示すよりもはるかに深刻であると主張しており、X41 D-Secは7.0と評価しています。
  • 2026年9月2日には、CISAがこのCVEを既知の悪用されている脆弱性(Known Exploited Vulnerabilities)カタログに追加しており、活発な悪用の証拠があることを示しています。

2. 対象となる環境

2.1 影響を受けるOSバージョン

本脆弱性はStarletteフレームワークの設計上の欠陥であり、特定のOSバージョンに直接依存するものではありません。したがって、OSバージョンによる影響は不明です。

2.2 影響を受ける設定

  • 影響を受けるStarletteのバージョン: 0.8.3から1.0.0までのすべてのStarletteリリース。
  • 影響を受けるフレームワーク・アプリケーション: Starletteに依存するFastAPI上のアプリケーションは、基盤となるStarletteのバージョンが修正されていない限り、この脆弱性を継承します。vLLM、LiteLLM(バージョン1.74.x以前)、Text Generation Inference、MCPサーバー、OpenAI互換APIプロキシ、およびAIエージェントフレームワークなどが影響を受けます。
  • 脆弱な条件: request.urlまたはrequest.url.pathに基づいてセキュリティ上の判断を行うミドルウェアやエンドポイントが脆弱です。これは、生のASGI scope['path']を使用しない場合に発生します。
  • 防御がない環境: ASGIサーバーの前にRFC準拠のリバースプロキシ(nginx, Apache, HAProxy, Caddyなど)が展開されておらず、不正な形式のHostヘッダーを拒否または正規化しない環境は脆弱です。

3. 影響を受けた時の兆候

  • Hostヘッダーに/, ?, #などの予約URL文字や空白を含むHTTPリクエスト。
  • 予期される長さを超えるHostヘッダー値、または標準的なhost:port形式以外の複数のコロンを含むHostヘッダー値。
  • アクセスログエントリで、正規化後にリクエストパスとホスト由来のURLコンポーネントが一致しない場合。
  • 通常であれば403 Forbiddenを返すはずの保護されたリソースへのリクエストが、不正なHostヘッダー(例: ?が追加されたもの)を使用することで200 OKを返す場合。

4. 推奨対策

4.1 本対策

  • Starletteのアップグレード: Starletteをバージョン1.0.1以降にアップグレードしてください。このパッチにより、HostヘッダーがRFC 9112およびRFC 3986の文法に照らして検証され、不正な値の場合にはscope["server"]にフォールバックしてrequest.urlが構築されます。

4.2 暫定回避策(緩和策)

  • リバースプロキシの導入: ASGIサーバーの前面にRFC準拠のリバースプロキシ(例: nginx, Apache, HAProxy, Caddy)を展開し、不正な形式のHostヘッダーがアプリケーションに到達する前に拒否するように設定してください。これはコード変更を必要としない最も簡単な緩和策です。
  • セキュリティミドルウェアの修正: セキュリティ関連のミドルウェアで認証判断を行う際に、request.urlやrequest.url.pathではなく、生のASGI request.scope["path"]を使用するようにコードを修正してください。scope["path"]はASGIサーバーから直接提供され、Hostヘッダーの操作の影響を受けません。
  • 設計の見直し: 認証や認可をリクエストのパス、ホスト、クエリ文字列のみに基づいて行わないようにアプリケーション設計を見直すことが推奨されます。

参照したサイト

  1. CVE-2026-48710: Starlette Auth Bypass Vulnerability - SentinelOne
  2. CVE-2026-48710 (BadHost): One Character Breaks Your Entire AI Stack
  3. CVE-2026-48710 (BadHost): How a Malformed Host Header Bypasses Starlette Path Authorization - DEV Community
  4. CVE-2026-48710 – Authentication Bypass – Starlette (Python ASGI Framework) prior to version 1.0.1 - IONIX
  5. CVE-2026-48710 - Red Hat Customer Portal
  6. CVE-2026-48710 - CVE Record
  7. FastAPI-based AI tools exposed to authentication bypass by flaw in Starlette framework
  8. CVE-2026-48710 Detail - NVD
  9. Starlette has missing Host header validation that poisons request.url.path, bypassing path-based security checks · CVE-2026-48710 - GitHub
  10. CVE-2026-48710: A Maintainer's Perspective - Marcelo Trylesinski

NVDサイト

NVDでCVEの詳細を見る

戻る