Skip to content
OpenAdvisories
Medium · 6.5 Known exploited Scanner template Public exploit CVE-2026-48710 EUVD-2026-32016GHSA-86qp-5c8j-p5mrPYSEC-2026-161X41-2026-002

Starlette has missing Host header validation that poisons request.url.path, bypassing path-based security checks

Published May 26, 2026 · Updated Oct 1, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
Kludex starlette < 1.0.1 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 starlette 1.1.0-1 —
Debian 13 starlette 0.46.1-3+deb13u2 —
Debian 12 starlette 0.26.1-1+deb12u1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 starlette No fix yet —
Ubuntu 26.04 LTS starlette No fix yet —
Ubuntu 25.10 starlette No fix yet —
Ubuntu 24.04 LTS starlette No fix yet —
Ubuntu 22.04 LTS starlette No fix yet —
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 python-starlette 0.41.3-160000.3.1 SUSE-SU-2026:22151-1
SLES 16.0 python-starlette 0.41.3-160000.3.1 SUSE-SU-2026:22151-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-google-adk 2.2.0-1.1 openSUSE-SU-2026:11044-1
openSUSE Tumbleweed python-starlette 1.2.0-1.1 openSUSE-SU-2026:11026-1
openSUSE Leap 16.0 python-starlette 0.41.3-160000.3.1 openSUSE-SU-2026:20975-1
ReleasePackageFixed inAdvisory
Alpine v3.24 py3-starlette 1.1.0-r0 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 5 repositories

  • eris-ths/supply-chain-guard ★ 3 · Apr 1, 2026

    Detect, assess, and respond to supply chain attacks across npm/yarn and Python (pip/poetry/uv). Claude Code skill + standalone scripts. Built during axios RAT (2026-03-31) and Starlette BadHost CVE-2…

  • Detection scanner for CVE-2026-48710 - Host-header auth bypass in Starlette/FastAPI

  • Starlette Host-Header URL Confusion Lab (X41-2026-002) - CVE-2026-48710

  • CuteeCat/CVE-2026-48710 ★ 0 · Aug 11, 2026

    CVE-2026-48710漏洞验证代码

  • OXDEV-77637 repro fixture: uv workspace whose transitive CVE (starlette 0.25.0 / CVE-2026-48710) is dropped when the lean clone omits workspace-member pyproject.toml. Tag: repro-OXDEV-77637

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Automated scanner template

A ready-made Nuclei template detects this vulnerability automatically. Vulnerabilities with public scanner templates are typically probed across the internet soon after the template appears — exposed systems should be patched first.

Source: projectdiscovery/nuclei-templates (MIT) — updated daily. Only links are listed.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI starlette < 1.0.1 1.0.1 GHSA-86qp-5c8j-p5mr

Advisories 5

References