---
id: GHSA-mhvj-jhpq-885v
title: >-
  blaze: Multiple HTTP/1.1 request-smuggling primitives in blaze's Java wire
  parser
summary: >-
  blaze: Multiple HTTP/1.1 request-smuggling primitives in blaze's Java wire
  parser
severity: high
cvss: 7.4
cwe:
  - CWE-444
vendor: http4s
product: 'org.http4s:http4s-blaze-server_2.13'
ecosystem: maven
affected:
  - 'org.http4s:http4s-blaze-server_2.13 <= 0.23.17'
  - 'org.http4s:blaze-http_2.13 <= 0.23.17'
  - 'org.http4s:blaze-http_3 <= 0.23.17'
  - 'org.http4s:blaze-http_3 >= 1.0.0-M1, <= 1.0.0-M41'
  - 'org.http4s:blaze-http_2.13 >= 1.0.0-M1, <= 1.0.0-M41'
patched:
  - 'org.http4s:http4s-blaze-server_2.13 0.23.18'
  - 'org.http4s:blaze-http_2.13 0.23.18'
  - 'org.http4s:blaze-http_3 0.23.18'
  - 'org.http4s:blaze-http_3 1.0.0-M42'
  - 'org.http4s:blaze-http_2.13 1.0.0-M42'
published: '2026-07-24'
updated: '2026-07-24'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-mhvj-jhpq-885v'
references:
  - url: 'https://github.com/http4s/blaze/security/advisories/GHSA-mhvj-jhpq-885v'
  - url: >-
      https://github.com/http4s/blaze/commit/3f7c022e306631b006dcb43a1d7f65c0d1966f17
  - url: >-
      https://github.com/http4s/blaze/commit/4eec2007806aa9acfefb00ebb636ddc39a147a96
  - url: >-
      https://github.com/http4s/blaze/commit/927b67753a78c13c4445dac9307f511f5c4878c3
  - url: >-
      https://github.com/http4s/blaze/commit/a54bc9cd31758335c7f24e29763622fd03fcf734
  - url: >-
      https://github.com/http4s/blaze/commit/c47d9675f87603f11b32a11d503626bdf9be5c7a
  - url: >-
      https://github.com/http4s/blaze/commit/e871ebb1d27f50c98fd56988526ce42d0fee74d6
  - url: 'https://github.com/http4s/blaze/releases/tag/v0.23.18'
  - url: 'https://github.com/http4s/blaze/releases/tag/v1.0.0-M42'
  - url: 'https://github.com/advisories/GHSA-mhvj-jhpq-885v'
tags:
  - ghsa
  - maven
ingestedAt: '2026-07-24T22:40:26.732Z'
---

## Overview

### Summary
  Five independent HTTP/1.1 conformance laxities in blaze's hand-written Java parser (`http/src/main/java/org/http4s/blaze/http/parser/`) cause request-boundary disagreement with a stricter intermediary. All are reachable from a default `BlazeServerBuilder` with no non-default configuration.

### Impact
Actual exploitability depends on the fronting proxy — a boundary disagreement requires a *pair* of parsers that disagree. Where the proxy forwards the malformed bytes and derives a different message boundary, the consequences are the standard set: front-end ACL/auth bypass, response-queue poisoning on pooled backend connections, and cache poisoning. Risk concentrates on lenient or legacy intermediaries.

### Workarounds
  Deploy behind an RFC-strict reverse proxy (nginx, HAProxy, Envoy, ALB) that rejects or re-serializes malformed requests at the edge; this neutralizes most of these for deployments that cannot upgrade immediately.

## Affected packages

- `org.http4s:http4s-blaze-server_2.13 <= 0.23.17`
- `org.http4s:blaze-http_2.13 <= 0.23.17`
- `org.http4s:blaze-http_3 <= 0.23.17`
- `org.http4s:blaze-http_3 >= 1.0.0-M1, <= 1.0.0-M41`
- `org.http4s:blaze-http_2.13 >= 1.0.0-M1, <= 1.0.0-M41`

## Remediation

Upgrade to a patched release:

- `org.http4s:http4s-blaze-server_2.13 0.23.18`
- `org.http4s:blaze-http_2.13 0.23.18`
- `org.http4s:blaze-http_3 0.23.18`
- `org.http4s:blaze-http_3 1.0.0-M42`
- `org.http4s:blaze-http_2.13 1.0.0-M42`
