CVE-2026-69216: Http4s Ember chunk parser lenience in HTTP request smuggling

CVE-2026-69216 · Severity: medium · CVSS 5.4 · Published 2026-09-15

Http4s Ember is a Java/Scala HTTP client and server library. The chunk decoder is too lenient in parsing chunk sizes, accepting leading/trailing whitespace and +/- signs, which allows attackers to craft malformed chunked requests that intermediaries may interpret differently. When an Ember-based server sits behind a proxy, this can allow request smuggling to bypass security controls, poison caches, or hijack request queues.

Technologies: Http4s-Ember-Core, org.http4s:http4s-ember-core_2.12 (Maven), org.http4s:http4s-ember-core_2.13 (Maven), org.http4s:http4s-ember-core_3 (Maven). Vendors: Http4s, Maven.

Quick answers

Is CVE-2026-69216 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-69216 being exploited in the wild.
How severe is CVE-2026-69216?
Medium severity, with a CVSS score of 5.4, published 15 September 2026.
Which products and versions are affected?
Http4s-Ember-Core <= 0.23.34; org.http4s:http4s-ember-core_2.12 (Maven) ECOSYSTEM:introduced=0,fixed=0.23.35; org.http4s:http4s-ember-core_2.13 (Maven) ECOSYSTEM:introduced=0,fixed=0.23.35; org.http4s:http4s-ember-core_3 (Maven) ECOSYSTEM:introduced=0,fixed=0.23.35.
Is there a fix for CVE-2026-69216?
Yes. org.http4s:http4s-ember-core_2.12 (Maven): upgrade to 0.23.35 or later; org.http4s:http4s-ember-core_2.13 (Maven): upgrade to 0.23.35 or later; org.http4s:http4s-ember-core_3 (Maven): upgrade to 0.23.35 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-69216 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-69216?
Check whether you run Http4s-Ember-Core, org.http4s:http4s-ember-core_2.12 (Maven), org.http4s:http4s-ember-core_2.13 (Maven) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • org.http4s:http4s-ember-core_2.12 (Maven): upgrade to 0.23.35 or later
    # set org.http4s:http4s-ember-core_2.12 to 0.23.35 in your pom.xml or build.gradle
  • org.http4s:http4s-ember-core_2.13 (Maven): upgrade to 0.23.35 or later
    # set org.http4s:http4s-ember-core_2.13 to 0.23.35 in your pom.xml or build.gradle
  • org.http4s:http4s-ember-core_3 (Maven): upgrade to 0.23.35 or later
    # set org.http4s:http4s-ember-core_3 to 0.23.35 in your pom.xml or build.gradle

Technical details

The vulnerability is an HTTP request/response smuggling flaw (CWE-444) in Http4s Ember's chunk transfer coding decoder. The root cause is that the chunk size parser strips leading and trailing whitespace and accepts a leading + or - sign, deviating from RFC 9112 §7.1 which defines chunk-size as 1*HEXDIG (hex digits only). An intermediary (proxy, firewall) that interprets or rejects these non-conformant chunk sizes differently than Ember will misalign on request boundaries. Attack preconditions for the server path: (1) Ember-based server deployed behind a keep-alive intermediary, (2) intermediary forwards chunked bodies verbatim without re-encoding, (3) intermediary disagrees with Ember on the +/- prefix or whitespace handling. An unauthenticated remote attacker can smuggle a request through the intermediary to reach the origin server with attacker-chosen method and headers, bypassing front-end security controls, poisoning cached responses, or hijacking request queues. The client path (response smuggling) requires a malicious or compromised upstream server. Patches are available: 0.23.35 for the 0.23.x line and 1.0.0-M47 for the 1.0.0-M series.

Affected products

  • Http4s http4s-ember-core_2.12 <= 0.23.34
  • Http4s http4s-ember-core_2.13 <= 0.23.34, >= 1.0.0-M1 to <= 1.0.0-M46
  • Http4s http4s-ember-core_3 <= 0.23.34, >= 1.0.0-M1 to <= 1.0.0-M46

Identifiers

  • CVE-2026-69216
  • GHSA-jrpm-956j-96jg

Timeline

  • 2026-09-15: disclosed: Vulnerability published to GitHub Advisory Database
  • 2026-09-15: patched: Patches released: v0.23.35 and v1.0.0-M47

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.