{"id":"CVE-2026-48710","published":"2026-05-26T22:16:44Z","modified":"2026-10-01T18:17:18Z","title":"Kludex Starlette HTTP Request/Response Smuggling Vulnerability","vendor":"Kludex","product":"Starlette","tier":"core","eol":null,"description":{"text":"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.","provenance":"source","from":"NVD"},"summary":{"text":"Starlette, the lightweight ASGI framework and toolkit from Kludex, fails to validate the HTTP Host request header before using it to rebuild request.url, so a malformed Host header can make request.url.path diverge from the path actually routed. An unauthenticated remote attacker sending a crafted request can bypass security restrictions that middleware or endpoints enforce based on request.url rather than the raw scope path, with no user interaction or special configuration required.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-29T07:53:25Z"},"cvss":{"score":6.5,"severity":"MEDIUM","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","provenance":"source","from":"NVD"},"epss":{"score":0.70288,"percentile":0.99382,"date":"2026-10-30","provenance":"source"},"kev":{"dateAdded":"2026-09-02","dueDate":"2026-09-16","ransomware":false,"requiredAction":"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.","notes":"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","provenance":"source"},"vulncheckKev":{"dateAdded":"2026-05-26","exploitedFirstSeen":"2026-05-26","ransomware":true,"evidence":[{"url":"https://euvd.enisa.europa.eu/enisa/EUVD-2026-32016","date":"2026-05-26"},{"url":"https://www.microsoft.com/en-us/security/blog/2026/08/26/when-ai-infrastructure-becomes-target-securing-gateways-control-points/","date":"2026-08-26"},{"url":"https://www.wiz.io/blog/ai-infrastructure-honeypot","date":"2026-08-27"},{"url":"https://previdian.com/CVE-2026-48710","date":"2026-09-02"},{"url":"https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json","date":"2026-09-02"}],"evidenceTotal":5,"provenance":"source"},"exploited":true,"otx":{"pulseCount":45,"pulses":[{"name":"Actively_Exploited_Kev | Oct 31, 2026","url":"https://otx.alienvault.com/pulse/6ae4aefab0c2191cecd41862","created":"2026-10-30"},{"name":"Actively_Exploited_Kev | Oct 30, 2026","url":"https://otx.alienvault.com/pulse/6ae35d889ea92b4ce19c2680","created":"2026-10-29"},{"name":"Actively_Exploited_Kev | Oct 29, 2026","url":"https://otx.alienvault.com/pulse/6ae20c1db17e7057ae7d9ad1","created":"2026-10-28"},{"name":"Actively_Exploited_Kev | Oct 28, 2026","url":"https://otx.alienvault.com/pulse/6ae0ba7e0e2a97ff7b218819","created":"2026-10-27"},{"name":"Actively_Exploited_Kev | Oct 27, 2026","url":"https://otx.alienvault.com/pulse/6adf68b85c3e852f3c111d18","created":"2026-10-26"},{"name":"Actively_Exploited_Kev | Oct 24, 2026","url":"https://otx.alienvault.com/pulse/6adb740e397c3ad4799aa4cd","created":"2026-10-23"},{"name":"Actively_Exploited_Kev | Oct 23, 2026","url":"https://otx.alienvault.com/pulse/6ada236fcfba2dfa730ea482","created":"2026-10-22"},{"name":"Actively_Exploited_Kev | Oct 22, 2026","url":"https://otx.alienvault.com/pulse/6ad8d33a077cbb5cab524d80","created":"2026-10-21"},{"name":"Actively_Exploited_Kev | Oct 21, 2026","url":"https://otx.alienvault.com/pulse/6ad78130c4d1ac2be83a8b6d","created":"2026-10-20"},{"name":"Actively_Exploited_Kev | Oct 20, 2026","url":"https://otx.alienvault.com/pulse/6ad62f63c24a405a3423cc13","created":"2026-10-19"}],"provenance":"machine"},"cwes":[{"id":"CWE-444","name":"Inconsistent Interpretation of HTTP Requests"},{"id":"CWE-1289","name":"Improper Validation of Unsafe Equivalence in Input"}],"references":[{"url":"https://badhost.org","tags":["Mitigation","Third Party Advisory"]},{"url":"https://github.com/Kludex/starlette/commit/764dab0dcfb9033d75442d7a359645c9f94648c6","tags":["Patch"]},{"url":"https://github.com/Kludex/starlette/security/advisories/GHSA-86qp-5c8j-p5mr","tags":["Vendor Advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/starlette/PYSEC-2026-161.yaml","tags":["Third Party Advisory"]},{"url":"https://ostif.org/disclosing-the-badhost-vulnerability-in-starlette","tags":["Mitigation","Third Party Advisory"]},{"url":"https://www.secwest.net/starlette","tags":["Exploit","Mitigation","Third Party Advisory"]},{"url":"https://www.x41-dsec.de/lab/advisories/x41-2026-002-starlette","tags":["Exploit","Mitigation","Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:22992","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:22993","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:23346","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:24866","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:26226","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:30088","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:30089","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:34456","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:34526","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:34532","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:37275","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:43038","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:44696","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:51357","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:60520","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:63337","tags":["Third Party Advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-48710","tags":["Third Party Advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2481742","tags":["Issue Tracking","Third Party Advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-48710.json","tags":["Third Party Advisory"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-48710","tags":["Third Party Advisory","US Government Resource"]},{"url":"https://www.wiz.io/blog/ai-infrastructure-honeypot","tags":["Exploit","Third Party Advisory"]},{"url":"https:/www.microsoft.com/en-us/security/blog/2026/08/26/when-ai-infrastructure-becomes-target-securing-gateways-control-points","tags":["Broken Link"]}],"techniques":[{"id":"T1190","name":"Exploit Public-Facing Application","tactics":["initial-access"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: Remote HTTP request header manipulation exploits public-facing app","mappingType":"exploitation_technique","evidence":[{"from":"description","quote":"the HTTP `Host` request header was not validated before being used to reconstruct `request.url`","start":75,"end":170}],"model":"claude-haiku-5-5","confidence":"medium","confidenceNote":"AI-mapped from the description (quote-validated, not expert-reviewed)"}],"reports":[],"affected":[{"ecosystem":"PyPI","package":"starlette","vulnerableRanges":["<1.0.1"],"patched":["1.0.1"],"from":["GHSA-86qp-5c8j-p5mr","PYSEC-2026-161"],"provenance":"source"}],"advisories":[{"id":"GHSA-86qp-5c8j-p5mr","url":"https://github.com/advisories/GHSA-86qp-5c8j-p5mr","severity":"MODERATE","ecosystem":"PyPI","package":"starlette","vulnerableRanges":["<1.0.1"],"patched":["1.0.1"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2026-32016","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-32016","exploited":true,"exploitedSince":"2026-09-02","provenance":"source"},"exploits":[],"exploitSources":{"pocGithub":{"count":5,"skipped":0,"earliest":"2026-04-01","earliestUrl":"https://github.com/eris-ths/supply-chain-guard","repos":[{"name":"eris-ths/supply-chain-guard","url":"https://github.com/eris-ths/supply-chain-guard","stars":3,"created":"2026-04-01"},{"name":"xtremebeing/starlette-host-header-lab","url":"https://github.com/xtremebeing/starlette-host-header-lab","stars":1,"created":"2026-05-27"},{"name":"Bhanunamikaze/BadHost-CVE-2026-48710-Exploit","url":"https://github.com/Bhanunamikaze/BadHost-CVE-2026-48710-Exploit","stars":1,"created":"2026-05-28"},{"name":"sb-ox/repro-OXDEV-77637-uv-workspace","url":"https://github.com/sb-ox/repro-OXDEV-77637-uv-workspace","stars":0,"created":"2026-08-03"},{"name":"CuteeCat/CVE-2026-48710","url":"https://github.com/CuteeCat/CVE-2026-48710","stars":0,"created":"2026-08-11"}]},"nuclei":[{"id":"CVE-2026-48710","name":"Starlette - Improper Validation of Unsafe Equivalence in Input","severity":"critical","path":"http/cves/2026/CVE-2026-48710.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2026/CVE-2026-48710.yaml"}],"first":{"date":"2026-04-01","source":"PoC-in-GitHub","url":"https://github.com/eris-ths/supply-chain-guard"},"provenance":"source"},"exploitRefs":["https://www.secwest.net/starlette","https://www.x41-dsec.de/lab/advisories/x41-2026-002-starlette","https://www.wiz.io/blog/ai-infrastructure-honeypot"],"flow":[{"stage":"exploitation","techniques":["T1190"],"provenance":"ai"}],"timeline":[{"date":"2026-04-01","kind":"exploit-public","label":"First public exploit: PoC-in-GitHub","url":"https://github.com/eris-ths/supply-chain-guard","provenance":"source"},{"date":"2026-05-26","kind":"published","label":"Published (NVD)","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-48710","provenance":"source"},{"date":"2026-05-26","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://euvd.enisa.europa.eu/enisa/EUVD-2026-32016","provenance":"source"},{"date":"2026-09-02","kind":"kev","label":"Added to CISA KEV","url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","provenance":"source"},{"date":"2026-09-02","kind":"euvd-exploited","label":"ENISA EUVD: exploited","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-32016","provenance":"source"}],"speed":{"daysToPublicExploit":null,"firstExploitFrom":"PoC-in-GitHub","daysToKev":99},"priority":{"score":82.4,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in CISA KEV and VulnCheck KEV"},{"name":"Recent KEV listing","points":5.0,"detail":"added 158 days ago"},{"name":"Known ransomware use","points":10.0,"detail":"CISA KEV and VulnCheck KEV: Known"},{"name":"EPSS percentile","points":19.88,"detail":"percentile 0.9938"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"3 NVD references tagged Exploit; 5 PoC-in-GitHub repos; 1 nuclei template"},{"name":"Mentioned in OTX pulses","points":3.0,"detail":"45 pulses"},{"name":"CVSS severity","points":4.55,"detail":"base score 6.5"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"packageHistory":[{"cve":"CVE-2024-47874","published":"2024-10-15","fixed":"0.40.0","kev":false},{"cve":"CVE-2025-54121","published":"2025-07-21","fixed":"0.47.2","kev":false},{"cve":"CVE-2025-62727","published":"2025-10-28","fixed":"0.49.1","kev":false},{"cve":"CVE-2026-48710","published":"2026-05-26","fixed":"1.0.1","kev":true},{"cve":"CVE-2026-48817","published":"2026-06-17","fixed":"1.1.0","kev":false,"link":{"from":"CVE-2026-48710","to":"CVE-2026-48817","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:starlette","fromFixed":"1.0.1","toFixed":"1.1.0","daysApart":22}]}},{"cve":"CVE-2026-48818","published":"2026-06-17","fixed":"1.1.0","kev":false,"link":{"from":"CVE-2026-48710","to":"CVE-2026-48818","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:starlette","fromFixed":"1.0.1","toFixed":"1.1.0","daysApart":22}]}},{"cve":"CVE-2026-54283","published":"2026-06-22","fixed":"1.3.1","kev":false}],"package":"PyPI:starlette"}}