Krytyczna

Http4s Ember accepts Transfer-Encoding combined with Content-Length (CL.TE request smuggling)

  • Ujawniono: 15.09.2026
  • Aktualizacja: 11.10.2026 13:20

Summary

Ember's HTTP/1.1 request parser does not reject a message that carries both a Transfer-Encoding and a Content-Length header. RFC 9112 §6.1 requires a server to treat such a message as a framing error and close the connection. An intermediary that follows the RFC's CL-strip-and-forward path (or that prioritises Content-Length) will frame the body differently from Ember, enabling HTTP request smuggling (CL.TE).

Impact

Server

Request smuggling when ember-server is an origin behind an intermediary that forwards both headers over a keep-alive backend connection and frames by Content-Length while Ember frames by chunked:

  • Front-end security bypass: the smuggled request reaches paths the intermediary's ACL/auth layer would have blocked, with attacker-chosen method and headers.
  • Cross-user request hijack: a dangling smuggled prefix concatenates with the next victim's request on the shared backend socket, capturing its headers.
  • Cache poisoning: the smuggled response is associated with the next request key in a caching proxy.

Client

ember-client shares the same parser on the response path. An upstream that sends both headers can desync a pooled client connection. This requires a malicious or compromised upstream.

Preconditions

  • Unauthenticated remote attacker (server)
  • ember-server as origin behind a keep-alive intermediary
  • Intermediary forwards a request carrying both Transfer-Encoding and Content-Length (RFC says it MAY reject; many forward) and frames by Content-Length
  • Malicious or compromised upstream (client)

Workarounds

  • Intermediary strictly rejects requests carrying both Transfer-Encoding and Content-Length
  • Intermediary buffers and re-encodes request bodies
  • Disable backend keep-alive between the intermediary and Ember

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Java / Kotlin (Maven) org.http4s:http4s-ember-core_2.12 < 0.23.35 0.23.35
Java / Kotlin (Maven) org.http4s:http4s-ember-core_2.13 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
Java / Kotlin (Maven) org.http4s:http4s-ember-core_3 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N
Słabość (CWE)
CWE-444
Platforma
Java / Kotlin (Maven)
Paczka
org.http4s:http4s-ember-core_2.12, org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_3
Ujawniono
15.09.2026
Aktualizacja
11.10.2026 13:20

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-8h4c-x2wg-6xp8 - CC BY 4.0

Historia podatności: org.http4s:http4s-ember-core_2.13

Wszystkie opisane podatności tej paczki (Java / Kotlin (Maven)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (11) w archiwum
Wszystkich wpisów
11
Pierwsza → ostatnia
09.2025 09.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 1
  • Wysoka 7
  • Średnia 3

Ujawnienia w latach

  1. 2025: 1
  2. 2026: 10
Istotność:
  1. Wysoka · 7.5 CVE-2026-88975 < 0.23.37, >= 1.0.0-M1, < 1.0.0-M48 0.23.37, 1.0.0-M48
  2. Wysoka · 7.5 CVE-2026-69218 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  3. Wysoka · 7.5 CVE-2026-69213 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  4. Wysoka · 8.7 CVE-2026-69205 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  5. Http4s Ember accepts Transfer-Encoding combined with Content-Length (CL.TE request smuggling) ten wpis
    Krytyczna CVE-2026-69204 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  6. Wysoka · 7.5 CVE-2026-69203 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  7. Wysoka · 7.5 CVE-2026-69202 < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 0.23.35, 1.0.0-M47
  8. Wysoka CVE-2026-54556 >= 1.0.0-M1, < 1.0.0-M47, < 0.23.35 1.0.0-M47, 0.23.35

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.