CVE-2026-48710: CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in Kludex starlette
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.
AI Analysis
Technical Summary
Starlette versions before 1.0.1 do not validate the HTTP Host header before using it to reconstruct request.url. Because routing uses the raw HTTP path but request.url is rebuilt from the Host header, a malformed Host header can cause request.url.path to differ from the actual requested path (scope["path"]). Applications that enforce security based on request.url.path rather than the canonical ASGI path can be bypassed. The vulnerability is classified as CWE-444 (Inconsistent Interpretation of HTTP Requests) and CWE-1289 (Improper Validation of Unsafe Equivalence in Input). The issue is mitigated in starlette 1.0.1 by validating the Host header against RFC 9112 and RFC 3986 grammar and falling back to scope["server"] for malformed values. Red Hat advisories confirm the moderate impact depends heavily on downstream application design and note that many deployments reduce impact by using reverse proxies or alternative authentication methods.
Potential Impact
The vulnerability can cause a mismatch between the reconstructed request.url.path and the actual HTTP request path, potentially allowing bypass of path-based security restrictions if applications rely on request.url.path for access control. However, the vulnerability does not itself grant unauthorized access or modify routing. The impact is context-dependent and relies on application design choices. Red Hat rates the impact as moderate, with many real-world deployments reducing risk through reverse proxies or non-path-based authentication mechanisms.
Mitigation Recommendations
A fix is available by upgrading to starlette version 1.0.1 or later, which properly validates the Host header. In the absence of an immediate upgrade, deploying an RFC-compliant reverse proxy (e.g., nginx, Apache, HAProxy, or Caddy) in front of the ASGI server will reject malformed Host headers before they reach the application. Additionally, custom middleware should be updated to use the ASGI scope path (request.scope["path"]) instead of request.url.path for security decisions, as the scope path is not influenced by the Host header.
CVE-2026-48710: CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in Kludex starlette
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 v3.1
Score 6.5medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Starlette versions before 1.0.1 do not validate the HTTP Host header before using it to reconstruct request.url. Because routing uses the raw HTTP path but request.url is rebuilt from the Host header, a malformed Host header can cause request.url.path to differ from the actual requested path (scope["path"]). Applications that enforce security based on request.url.path rather than the canonical ASGI path can be bypassed. The vulnerability is classified as CWE-444 (Inconsistent Interpretation of HTTP Requests) and CWE-1289 (Improper Validation of Unsafe Equivalence in Input). The issue is mitigated in starlette 1.0.1 by validating the Host header against RFC 9112 and RFC 3986 grammar and falling back to scope["server"] for malformed values. Red Hat advisories confirm the moderate impact depends heavily on downstream application design and note that many deployments reduce impact by using reverse proxies or alternative authentication methods.
Potential Impact
The vulnerability can cause a mismatch between the reconstructed request.url.path and the actual HTTP request path, potentially allowing bypass of path-based security restrictions if applications rely on request.url.path for access control. However, the vulnerability does not itself grant unauthorized access or modify routing. The impact is context-dependent and relies on application design choices. Red Hat rates the impact as moderate, with many real-world deployments reducing risk through reverse proxies or non-path-based authentication mechanisms.
Mitigation Recommendations
A fix is available by upgrading to starlette version 1.0.1 or later, which properly validates the Host header. In the absence of an immediate upgrade, deploying an RFC-compliant reverse proxy (e.g., nginx, Apache, HAProxy, or Caddy) in front of the ASGI server will reject malformed Host headers before they reach the application. Additionally, custom middleware should be updated to use the ASGI scope path (request.scope["path"]) instead of request.url.path for security decisions, as the scope path is not influenced by the Host header.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-22T18:47:27.755Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
- Vendor Advisory Urls
- [{"url":"https://access.redhat.com/security/cve/CVE-2026-48710","vendor":"Red Hat"}]
Threat ID: 6a161c3ae29bf47b506f4910
Added to database: 05/26/2026, 22:18:34 UTC
Last enriched: 08/16/2026, 15:09:29 UTC
Last updated: 08/26/2026, 22:52:11 UTC
Views: 299
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.