CVE-2026-48710: Starlette Host header request.url confusion bypasses path-based auth (BadHost)
Exploited in the wild Medium 6.5 EPSS 70.3%
Starlette before 1.0.1 rebuilt request.url from the unvalidated Host header, so a header such as 'example.com/abc?bar=' makes request.url.path differ from the path the router actually serves. Middleware that makes security decisions from request.url (common in FastAPI/Starlette apps, LLM gateways and MCP servers) can be bypassed without authentication. Starlette 1.0.1 validates the Host header; CISA added it to the Known Exploited Vulnerabilities catalog on 2026-09-02.
Also known as “BadHost”.
- CVE-2026-48710CVE identifier
- 6.5CVSS 3.1 base score (medium)
- 2026-09-02added to CISA's exploited list (US federal deadline 2026-09-16)
- 70.3%EPSS: chance of exploitation in the next 30 days (higher than 99% of CVEs)
- 2026-05-26published
What do these terms mean? CVE · CVSS score · exploited (KEV) · EPSS · backported fix · all terms
What to do now
- Check whether you run the affected software and which version (commands below).
- Install the fixed version for your system: see “Patch it” below.
- Restart the ASGI server (uvicorn, gunicorn, hypercorn, etc.) serving the application.
- If you cannot patch today, apply the temporary mitigation below and patch as soon as possible.
- Because this flaw is being exploited, also check the server for signs of compromise.
Affected and fixed versions
Affected:
- Starlette 1.0.0 and earlier
Fixed in:
- Starlette 1.0.1
Am I affected?
pip show starlette | grep -i ^version
dpkg -l python3-starlette | grep ^ii
Patch it
Use the commands for your system. Distribution packages often keep an older version number with the fix backported, so compare with the fixed package versions in the table below, not only with the upstream version.
Debian
sudo apt update
sudo apt install --only-upgrade python3-starletteBuilt from source
pip install --upgrade 'starlette>=1.0.1'
# FastAPI users: upgrade FastAPI to a release that allows starlette>=1.0.1, then restart the ASGI serverGeneral update steps for every system are on the Linux and Unix & BSD pages; after updating, see which services to restart.
Fix status in Linux distributions
| Release | Package | Status | Fixed version / advisory |
|---|---|---|---|
| Debian 12 | starlette | fixed | 0.26.1-1+deb12u1 |
| Debian 13 | starlette | fixed | 0.46.1-3+deb13u2 |
| Debian testing | starlette | fixed | 1.1.0-1 |
| Debian 12 (bookworm) | starlette | fixed | 0.26.1-1+deb12u1 (DSA-6302-1) |
| Debian 13 (trixie) | starlette | fixed | 0.46.1-3+deb13u2 (DSA-6302-1) |
| Debian unstable (sid) | starlette | fixed | 1.1.0-1 |
From the Debian security tracker, Ubuntu CVE tracker and Red Hat Security Data API, refreshed every few hours.
If you cannot patch yet
- Put an RFC-compliant reverse proxy (nginx, Caddy, Traefik, HAProxy) in front of the ASGI server; it rejects or normalizes malformed Host headers (BadHost site; the advisory notes this only helps if the proxy actually rejects/normalizes them).
- In custom middleware, make authorization decisions on scope["path"] instead of request.url.path, or use endpoint-level auth (Starlette requires(), FastAPI Depends()/Security()).
Look for signs of exploitation
- Requests whose Host header contains '/', '?' or '#' (e.g. 'Host: example.com/abc?bar=') in ASGI server or proxy logs.
CISA required action: Apply mitigations in accordance with vendor instructions, ensuring compliance with CISA’s BOD 26-04 Prioritizing Security Updates Based on Risk (see URL in Notes) guidance and CISA’s “Forensics Triage Requirements” (see URL in Notes). Follow applicable BOD 26-04 guidance for cloud services or discontinue use of the product if mitigations are unavailable. Stakeholders are responsible for evaluating each asset's internet exposure and ensuring adherence to BOD 26-04 patching guidelines.
This vulnerability affects an open-source component, third-party library, protocol, or proprietary implementation that could be used by different products. For more information, please see: https://github.com/Kludex/starlette/security/advisories/GHSA-86qp-5c8j-p5mr ; BOD 26-04: https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk ; Forensics Triage Requirements: https://www.cisa.gov/news-events/directives/bod-26-04-implementation-guidance-prioritizing-security-updates-based-risk ; https://nvd.nist.gov/vuln/detail/CVE-2026-48710
Sources
- Starlette advisory GHSA-86qp-5c8j-p5mr
- BadHost - CVE-2026-48710
- Debian security tracker CVE-2026-48710
- Ubuntu CVE-2026-48710 (needs evaluation)
- Red Hat CVE-2026-48710 data
- CVE record CVE-2026-48710
- https://github.com/Kludex/starlette/commit/764dab0dcfb9033d75442d7a359645c9f94648c6
- https://github.com/pypa/advisory-database/tree/main/vulns/starlette/PYSEC-2026-161.yaml
- https://ostif.org/disclosing-the-badhost-vulnerability-in-starlette
- https://www.secwest.net/starlette
- https://www.x41-dsec.de/lab/advisories/x41-2026-002-starlette
- CVE-2026-48710 on CVE.org
- CVE-2026-48710 on NVD
- CISA Known Exploited Vulnerabilities catalog
Page generated automatically from official sources on 2026-11-03 18:05 UTC and reviewed by an editor. Always confirm with your vendor's advisory.