Org.http4s:blaze http 2.13: blaze: Chunked-body trailer fields promoted into Request.headers in blaze-server (front-end header-sanitization bypass)
Affects org.http4s:blaze-http_2.13Source GCVE Database
CVSS 7.4 High · fixed in 0.23.18 : patch org.http4s:blaze-http_2.13 soon.
Data as of 07/25/2026, 23:50:40 UTC
- 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
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| Mavenorg.http4s:blaze-http_2.13 | Affected
| Fixed in
|
| Mavenorg.http4s:blaze-http_2.12 | 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.
AI-suggested
Deploy the application behind a proxy that removes or rejects HTTP/1.1 chunked-body trailer fields before forwarding requests. Additionally, avoid making trust decisions based on headers that rely on proxy sanitization, such as X-Forwarded-For or internal authentication headers. Monitor vendor advisories for updates regarding official fixes.
Description
A vulnerability in org.http4s blaze-server allows HTTP/1.1 chunked-body trailer fields to be merged into Request.headers. This enables an unauthenticated remote attacker to inject arbitrary HTTP headers that may bypass fronting proxy sanitization. Applications trusting proxy-set headers such as X-Forwarded-For or internal authentication headers are at risk of spoofing client IPs, forging HTTPS schemes, or injecting unauthorized headers. The vulnerability also allows attacker-controlled termination of pooled backend connections via a promoted Connection: close trailer. Workarounds include deploying behind proxies that remove or reject trailer fields and avoiding trust decisions based on proxy-sanitized headers until patched.
Impact
Applications using vulnerable versions of blaze-server that trust proxy-set headers can have their security controls bypassed. Attackers can inject arbitrary headers to spoof client IPs, bypass allow-lists or rate limits, forge HTTPS scheme indicators, inject internal authentication headers, and cause premature termination of backend connections. This compromises confidentiality and integrity of the application’s trust decisions based on HTTP headers. Availability impact is not indicated.
Summary
The blaze-server component of org.http4s (version <0.23.18) merges HTTP/1.1 chunked-body trailer fields into the Request.headers object. Since trailer fields are attacker-controlled, this behavior allows an unauthenticated remote client to inject arbitrary headers that a fronting proxy may have sanitized from the initial request headers. This bypasses header-based trust decisions in applications, affecting any http4s application using BlazeServerBuilder over HTTP/1.1 that relies on proxy-set headers for security decisions. The vulnerability can be exploited to spoof client IP addresses, forge HTTPS schemes, inject internal authentication headers, and prematurely close backend connections. No official patch or fix link is provided in the data, and the vulnerability is classified as high severity with CVSS 3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N.
Weaknesses
- CWE-444Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') (opens in a new tab)
Base weaknessOWASP Top 10 A06:2025: Insecure Design (opens in a new tab)
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
References
- github.com/http4s/blaze/security/advisories/GHSA-46q4-43ph-c6fr (opens in a new tab)
- github.com/http4s/blaze/commit/ef3e666c146cfc16cb6603f1fc3c464daab4a24f (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)