← back
CVE-2026-48710

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

CVSS 6.5 MEDIUMEPSS 1.4%CWE-1289CWE-444
In short

Starlette didn't properly validate the HTTP Host header, allowing attackers to craft malicious requests that make the URL path appear different from what was actually requested. This could bypass security checks that rely on the URL path.

Technical detail

The vulnerability exists in Starlette versions before 1.0.1 where the Host header is used to reconstruct request.url without RFC 9112/3986 validation. An attacker can send a malformed Host header to cause request.url.path to diverge from the actual routing path in scope, allowing bypass of path-based security middleware and endpoint restrictions that check request.url instead of raw scope values.

Summary generated and translated by AI from the official 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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Affected products
Kludex · starlette
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →