本文へスキップ
記事一覧に戻る
security3 min

BadHost:Starletteの脆弱性CVE-2026-48710がAIエージェントとMCPサーバーを危険に(2026年5月)

BadHost: Starlette flaw (CVE-2026-48710) exposes AI agents and MCP servers (May 2026)

KGA IT
2026-10-123 min
SecurityStarletteFastAPIMCPCVE-2026-48710Maio 2026

何が起きたのか

2026年5月、FastAPIの土台であるPythonフレームワークStarletteに、認証回避の重大な脆弱性CVE-2026-48710(通称BadHost)が公表されました。修正はStarlette 1.0.1です。OSTIFが支援した監査でX41 D-Secが発見し、Ars Technicaが報じました。

深刻な理由:Starletteは週に約3億2,500万回ダウンロードされ、vLLM、LiteLLM、AIエージェントとツールやデータベースをつなぐMCPサーバー、Google ADK-Python、Ray Serve、BentoML、エージェント管理画面など、PythonのAI基盤の多くを支えています。

仕組み

StarletteはHostヘッダーとパスを連結してrequest.urlを組み立てますが、Hostを検証していませんでした。攻撃者がHost: example.com/health?x=のような値を送ると:

  • ルーターは本来のパス(例:/admin)に処理を渡す
  • しかし認証ミドルウェアは「汚染された」パス(公開されている/health)を見て通してしまう

その結果、ミドルウェアで行うパスベースのセキュリティルールは、ヘッダーの1文字で回避できます。

MCPサーバーは特に狙われやすい対象です。MCPの仕様では公開のOAuth検出エンドポイントが必須で、見つけやすいためです。X41のスキャンでは、脆弱なシステムから臨床試験データ、本人確認、メールボックス全体、人事データ、産業機器へのSSHアクセスなどが露出していました。

報道によると、Claude MythosでもProject Glasswingでこのバグを見つけられませんでした。個別には正しく動く3つの層の組み合わせで生じるためです。

対策

  1. Starletteを1.0.1以降に更新する(同梱するFastAPIも)
  2. すぐに更新できない場合は、セキュリティ判断を行うミドルウェアや依存関係でrequest.url.pathをrequest.scope["path"]に置き換える
  3. Hostを検証するリバースプロキシ(nginx、Caddy、Traefik、HAProxy)を前段に置く
  4. 古いバージョンが固定されている可能性のあるコンテナイメージや仮想環境を監査する
  5. badhost.orgに無料スキャナーがある

教訓

AIエージェントの基盤は急成長し、誰も見直していないセキュリティ上の前提を抱えています。FastAPIでMCPサーバーやLLMプロキシを動かしているなら、最優先で対応しましょう。

出典


AIエージェントやMCPサーバーを社内で運用していますか。KGA ITが無料でセキュリティを確認します:kga-it.com

技術的な課題を一緒に解決しませんか?

KGA IT Solutionsは、AI・クラウド・DevOpsの専門チームがお客様の課題に最適なソリューションを提供します。

お問い合わせ