http4k before 6.49.0.0 Host Header Routing Bypass via reverseProxy
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.49.0.0, 5.42.0.0, 4.51.0.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
http4k (Maven package org.http4k:http4k-core) before 6.49.0.0, 5.42.0.0 and 4.51.0.0 uses substring (Contains) matching on the Host header by default in reverseProxy() and reverseProxyRouting() when dispatching to configured virtual hosts. If these functions are deployed as a public-facing inbound HTTP handler with two or more configured virtual hosts, a remote attacker can supply a Host header that merely contains a configured vhost name (for example Host: admin.evil.com for a vhost configured as "admin") and be routed to that vhost, bypassing routing-based authorization. The intended outbound-dispatch and test-time uses, where the Host value is set by the calling application, are not affected.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- http4k http4k
From 6.0.0.0 · fixed in 6.49.0.0
- http4k http4k
From 5.0.0.0 · fixed in 5.42.0.0
- http4k http4k
fixed in 4.51.0.0
- org.http4k:http4k-coreMaven
From 6.0.0.0 · fixed in 6.49.0.0
- org.http4k:http4k-coreMaven
From 5.0.0.0 · fixed in 5.42.0.0
- org.http4k:http4k-coreMaven
fixed in 4.51.0.0