脆弱性・CVE速報深刻度: 高

Starlette の Host ヘッダー検証不備で、パス判定による認証・アクセス制限を回避される欠陥(CVE-2026-48710): EPSS 0.70、CISA KEV に追加済み、1.0.1 で修正

目次(5)

CVE-2026-48710

Python の ASGI フレームワーク Starlette に、HTTP の Host ヘッダーを検証しないまま request.url を組み立てる欠陥(CVE-2026-48710)が見つかりました。細工した Host ヘッダーを送ると、実際にルーティングされるパスと request.url.path の値がずれます。そのため、request.url のパスを見てアクセスを制限するミドルウェアや処理は、認証なしで迂回される可能性があります。CISA の KEV(悪用が確認された脆弱性)カタログには 2026-09-02 に追加されています。NVD の CVSS v3.1 は 6.5、悪用予測(EPSS)は 0.703 と高い水準です。修正版は Starlette 1.0.1 です。

概要

項目内容
問題Host ヘッダーを検証せずに request.url を再構築しており、/・?・# を含む値でパス・クエリの境界が動く(CWE-444、CWE-1289)
攻撃条件ネットワークから到達できれば認証不要・操作不要(AV:N/AC:L/PR:N/UI:N)
影響request.url.path を使ったアクセス制御の迂回(機密性・完全性に限定的な影響)
CVSS v3.16.5(NVD、GitHub のアドバイザリも同値)。ベクターは C:L/I:L/A:N
EPSS0.703(パーセンタイル 0.994)
CISA KEV2026-09-02 追加。期限 2026-09-16。ランサムウェアでの利用は不明
NVD の状態Analyzed
対象Starlette 0.8.3 以上 1.0.1 未満(NVD の構成情報)
修正版1.0.1

仕組みは次のとおりです。Starlette のルーティングは、リクエスト行にある生のパスで行き先を決めます。一方 request.url は、Host ヘッダーとパスをつなげた文字列を解析し直して作られます。たとえば次のように送ると、ルーターは /foo の処理を実行しますが、request.url.path は /abc になります。

GET /foo HTTP/1.1
Host: example.com/abc?bar=

request.url.path の値で「/admin で始まるパスは認証必須」のような判定をしていると、実際には /admin に届いているのに判定をすり抜けます。生のパス(scope["path"])で判定している処理には影響しません。

なぜ重要か

Starlette は FastAPI をはじめ多くの Python の Web アプリや API サーバーの土台になっており、AI の推論サーバーやゲートウェイにも組み込まれています。NVD の構成情報には、Red Hat の AI 推論サーバー、OpenShift AI、Ansible Automation Platform などの製品も並んでいます。KEV は、この欠陥が認証の迂回に使われうるものとして悪用の確認を示しています。CISA は別の CVE(CVE-2026-42271)との連鎖が可能とも記載しています。

深刻度は CVSS 6.5 と中程度ですが、EPSS が 0.70 と高く、KEV に載っているため、更新の優先度は高めです。一方で、影響はアプリ側が request.url をアクセス判定に使っている場合に限られます。リバースプロキシやロードバランサーが不正な Host ヘッダーを拒否・正規化していれば、緩和されます。

対策

  • Starlette を 1.0.1 以上に更新する。FastAPI など Starlette を内包するフレームワークは、依存する Starlette の版を確認する(pip show starlette や依存関係の一覧で確認できる)。
  • 自社のミドルウェアや認可処理が request.url.path や request.url でアクセスを判定していないか点検し、生のパス(request.scope["path"])を使うように直す。
  • 前段のプロキシで、/・?・# を含む不正な Host ヘッダーを拒否するか、正規化する。X-Forwarded-Host をアプリ側で信用していないかも確認する。
  • KEV の期限(2026-09-16)はすでに過ぎている。保護対象のパスに、想定外の Host ヘッダーを伴うアクセスが成功していないか、Web サーバーやプロキシのログを調べる。

数値と出典(2026-11-04 時点)

項目内容
NVDAnalyzed。CVSS v3.1 6.5(AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N)
EPSS0.703、パーセンタイル 0.994(FIRST、2026-11-03)
KEV2026-09-02 追加。期限 2026-09-16。ランサムウェア利用は不明
出典NVD、CISA KEV、FIRST、GitHub アドバイザリ(GHSA-86qp-5c8j-p5mr)、PyPA アドバイザリ DB(PYSEC-2026-161)

未確認の点

  • 悪用の規模、攻撃者、狙われた具体的なアプリや製品。KEV は悪用の確認を示すが、詳細は公開情報で確認できていない。
  • CISA が連鎖の可能性に挙げた CVE-2026-42271 の内容と、連鎖したときの影響。
  • 認証迂回が成立する具体的なアプリの構成の広がり。FastAPI などの上位フレームワークで標準の設定のまま影響を受けるかは確認できていない。
  • Starlette 1.0.1 より前の系統(0.8.3 以降)それぞれの修正版の有無。NVD は 1.0.1 未満を対象としている。
  • 更新できない場合の公式な回避策(上記のプロキシでの対策は一般的な対策)。

この記事について

AI の利用
本記事は AI が NVD などの公開情報をもとに作成しました。数値は取得時点(2026-11-03〜04)のもので、未確認の点は本文に明記しています。

出典

この記事を共有