Org.http4s:http4s blaze server 2.13: blaze: Multiple HTTP/1.1 request-smuggling primitives in blaze's Java wire parser
Affects org.http4s:http4s-blaze-server_2.13Source GCVE Database
- Patch
- Available – fixed in 0.23.18, 1.0.0-M42
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NWhat to do
AI-suggested
A fix is available in versions 0.23.18 and later. Until upgrading, it is recommended to deploy the blaze server behind an RFC-compliant reverse proxy such as nginx, HAProxy, Envoy, or AWS ALB that rejects or re-serializes malformed HTTP requests at the edge. This approach neutralizes most of the vulnerabilities for deployments that cannot upgrade immediately.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| Mavenorg.http4s:http4s-blaze-server_2.13 | Affected
| Fixed in
|
| Mavenorg.http4s:blaze-http_2.13 | Affected
| Fixed in
|
| Mavenorg.http4s:blaze-http_3 | Affected
| Fixed in
|
| Mavenorg.http4s:blaze-http_3 | Affected
| Fixed in
|
| Mavenorg.http4s:blaze-http_2.13 | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
Multiple HTTP/1.1 request-smuggling vulnerabilities exist in the blaze server's Java wire parser used by org.http4s:http4s-blaze-server_2.13. These parser laxities cause disagreement on request boundaries when paired with stricter intermediaries, potentially allowing bypass of front-end access controls, response queue poisoning, and cache poisoning. The vulnerabilities affect versions prior to 0.23.18. Exploitability depends on the presence of a fronting proxy that interprets requests differently. Deploying behind an RFC-compliant reverse proxy can mitigate the risk until an upgrade is possible.
Weaknesses
References
- github.com/http4s/blaze/security/advisories/GHSA-mhvj-jhpq-885v (opens in a new tab)
- github.com/http4s/blaze/commit/3f7c022e306631b006dcb43a1d7f65c0d1966f17 (opens in a new tab)
- github.com/http4s/blaze/commit/4eec2007806aa9acfefb00ebb636ddc39a147a96 (opens in a new tab)
- github.com/http4s/blaze/commit/927b67753a78c13c4445dac9307f511f5c4878c3 (opens in a new tab)
- github.com/http4s/blaze/commit/a54bc9cd31758335c7f24e29763622fd03fcf734 (opens in a new tab)
- github.com/http4s/blaze/commit/c47d9675f87603f11b32a11d503626bdf9be5c7a (opens in a new tab)
- github.com/http4s/blaze/commit/e871ebb1d27f50c98fd56988526ce42d0fee74d6 (opens in a new tab)
- github.com/http4s/blaze (opens in a new tab)
- github.com/http4s/blaze/releases/tag/v0.23.18 (opens in a new tab)
- github.com/http4s/blaze/releases/tag/v1.0.0-M42 (opens in a new tab)