BadHost CVE-2026-48710 ist eine Schwachstelle in Starlette, dem ASGI-Framework hinter vielen FastAPI-Apps. Vor Starlette 1.0.1 konnte ein ungültiger HTTP-Host-Header die intern rekonstruierte URL verfälschen. Wenn Security-Code danach request.url.path prüft, kann er einen harmlosen Pfad sehen, obwohl Starlette den Request an einen geschützten Endpoint routet.
Ist BadHost eine MCP Schwachstelle?
BadHost ist keine Schwachstelle im MCP-Protokoll selbst. Der Begriff MCP Schwachstelle ist trotzdem praktisch relevant, weil viele MCP-Server, AI-Agent-Gateways, LLM-Proxies und OpenAI-kompatible APIs auf FastAPI oder Starlette laufen. FastAPI hängt von Starlette ab; riskant sind vor allem eigene BaseHTTPMiddleware- oder ASGI-Middlewares, die Zugriff auf /mcp, /sse, /messages oder /v1/* über Pfadstrings absichern.
Kurzes Exploit-Beispiel
Das folgende Beispiel zeigt nur das Prinzip für autorisierte Tests. Der Request geht real an /admin, die fehlerhafte URL-Rekonstruktion kann aber /health als request.url.path erscheinen lassen:
GET /admin HTTP/1.1
Host: app.example/health?x=
Authorization: none Verwundbare Middleware kann dadurch eine Allowlist wie ["/health"] passieren lassen, während der Router weiterhin den geschützten Endpoint /admin ausführt. Genau diese Inkonsistenz beschreibt X41 als Kern von CVE-2026-48710.
Wer ist betroffen?
- Starlette-Anwendungen mit Versionen vor 1.0.1.
- FastAPI-Anwendungen, wenn die installierte Starlette-Version verwundbar ist.
- Apps mit Auth-, Rate-Limit-, Audit- oder Routing-Logik auf
request.url.path. - Direkt erreichbare Uvicorn-, Hypercorn-, Daphne- oder Granian-Deployments ohne validierenden Reverse Proxy.
- AI-, LLM- und MCP-Infrastruktur wie MCP-Server, vLLM, LiteLLM, Agent-Frameworks und interne Gateways, sofern sie diese Muster nutzt.
Nicht jede FastAPI- oder Starlette-App ist automatisch ausnutzbar. Entscheidend ist die Kombination aus verwundbarer Starlette-Version, manipulierbarem Host-Header und Security-Entscheidungen auf Basis der rekonstruierten URL.
Welche Maßnahmen jetzt nötig sind
Sofortmaßnahmen
- 1
Starlette aktualisieren
Auf Starlette 1.0.1 oder neuer aktualisieren und Container, Lockfiles, virtuelle Umgebungen sowie vendored Dependencies neu bauen.
- 2
Middleware prüfen
Nach request.url.path suchen, besonders in Auth-Middleware, Allow-/Deny-Listen, Rate-Limits und MCP-/API-Gateways.
- 3
Robusten Pfad verwenden
request.scope["path"] statt request.url.path für pfadbasierte Entscheidungen verwenden, wenn Middleware unvermeidbar ist.
- 4
Auth endpoint-nah binden
FastAPI Depends() oder Security() nutzen, statt globale Pfadstring-Checks in Middleware zu bauen.
- 5
Reverse Proxy validieren
nginx, Caddy, Traefik, HAProxy oder Load Balancer müssen ungültige Host-Header blockieren; X-Forwarded-Host darf nicht blind vertraut werden.
FAQ zu BadHost CVE-2026-48710
FAQ zu BadHost CVE-2026-48710
Was ist BadHost CVE-2026-48710?
Warum ist BadHost eine MCP Schwachstelle?
Welche Version behebt CVE-2026-48710?
Quellen
- Advisory: Missing Host header validation poisons request.url.pathGitHub Security Advisory, veröffentlicht am 21.05.2026
- NVD: CVE-2026-48710 DetailNational Vulnerability Database, zuletzt geändert am 02.06.2026
- Research: Advisory X41-2026-002X41 D-Sec, 2026
- Disclosure: Disclosing the BADHOST Vulnerability in StarletteOSTIF, 2026
- Tooling: BadHost CVE-2026-48710 ScannerBadHost Scanner, Nemesis Security Automation
- Docs: FastAPIFastAPI Dokumentation, abgerufen am 03.06.2026