Description
blaze is a Scala library for building asynchronous pipelines, with a focus on network IO. Prior to 0.23.18 and from 1.0.0-M1 until 1.0.0-M42, five HTTP/1.1 conformance laxities in the hand-written Java parser under http/src/main/java/org/http4s/blaze/http/parser/ can cause blaze to derive a different request boundary than a stricter fronting intermediary. A default BlazeServerBuilder accepts invalid or valueless header field names that violate tchar syntax, obsolete folded field lines (obs-fold), unsupported Transfer-Encoding values, duplicate Content-Length fields, and requests containing both Transfer-Encoding and Content-Length. If a lenient or legacy proxy forwards the malformed bytes but interprets them differently, the disagreement can permit front-end authorization bypass, response-queue poisoning on pooled backend connections, or cache poisoning. Exploitation requires a pair of disagreeing parsers; no non-default blaze configuration is required. The affected checks are enforced in BodyAndHeaderParser and Http1ServerParser. This issue is fixed in versions 0.23.18 and 1.0.0-M42.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| http4s | blaze | < 0.23.18, >= 1.0.0-M1, < 1.0.0-M42 | — |
| org.http4s | blaze-http_2.13 | < 0.23.18, >= 1.0.0-M1, < 1.0.0-M42 | — |
| org.http4s | blaze-http_3 | < 0.23.18, >= 1.0.0-M1, < 1.0.0-M42 | — |
| org.http4s | http4s-blaze-server_2.13 | < 0.23.18 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.http4s:blaze-http_2.13 | < 0.23.18 | 0.23.18 | GHSA-mhvj-jhpq-885v |
| Maven | org.http4s:blaze-http_2.13 | >= 1.0.0-M1, < 1.0.0-M42 | 1.0.0-M42 | GHSA-mhvj-jhpq-885v |
| Maven | org.http4s:blaze-http_3 | < 0.23.18 | 0.23.18 | GHSA-mhvj-jhpq-885v |
| Maven | org.http4s:blaze-http_3 | >= 1.0.0-M1, < 1.0.0-M42 | 1.0.0-M42 | GHSA-mhvj-jhpq-885v |
| Maven | org.http4s:http4s-blaze-server_2.13 | < 0.23.18 | 0.23.18 | GHSA-mhvj-jhpq-885v |
References
- https://github.com/http4s/blaze/security/advisories/GHSA-mhvj-jhpq-885v
- https://github.com/http4s/blaze/commit/3f7c022e306631b006dcb43a1d7f65c0d1966f17
- https://github.com/http4s/blaze/commit/4eec2007806aa9acfefb00ebb636ddc39a147a96
- https://github.com/http4s/blaze/commit/927b67753a78c13c4445dac9307f511f5c4878c3
- https://github.com/http4s/blaze/commit/a54bc9cd31758335c7f24e29763622fd03fcf734
- https://github.com/http4s/blaze/commit/c47d9675f87603f11b32a11d503626bdf9be5c7a
- https://github.com/http4s/blaze/commit/e871ebb1d27f50c98fd56988526ce42d0fee74d6
- https://github.com/http4s/blaze/releases/tag/v0.23.18
- https://github.com/http4s/blaze/releases/tag/v1.0.0-M42