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.
Fix
Patch, vendor advisory and mitigation references on NVD 2
- https://github.com/http4k/http4k/commit/0121b05537 patch
- https://github.com/http4k/http4k/commit/54c6385615 patch
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 6.3 · http4kNVD modified 2026-10-29 20:19
Affected (CPE criteria) 0
NVD has not attached CPE configurations yet.
References 4
- https://github.com/http4k/http4k/security/advisories/GHSA-jrpc-7vxp-69p6 vendor-advisory
- https://github.com/http4k/http4k/commit/0121b05537 patch
- https://github.com/http4k/http4k/commit/54c6385615 patch
- https://www.vulncheck.com/advisories/http4k-before-6.49.0.0-host-header-routing-bypass-via-reverseproxy third-party-advisory