Loading...
Skip to main content

CVE-2026-69205 — Vulnerability in...

HIGH

Http4s Ember Transfer-Encoding value parsing (TE.CL / TE.0 request smuggling)

Published September 15, 2026Updated September 15, 2026Source: osv

Summary

## Summary Ember's HTTP/1.1 header parser matches the `Transfer-Encoding` header value with a case-sensitive substring test (`hValue.contains("chunked")`). RFC 9112 §7 requires transfer-coding names to be compared case-insensitively. A request carrying `Transfer-Encoding: Chunked` (capital C) is therefore not recognised as chunked, and Ember falls back to framing by `Content-Length` (or zero if absent) while a compliant intermediary frames the same bytes by chunked encoding. The two parsers then disagree on where the request body ends, enabling HTTP request smuggling (TE.CL / TE.0). The same line of code admits two further variants: - The substring test misfires on `Transfer-Encoding: notchunked` (an inverse desync — Ember treats it as chunked while a compliant intermediary rejects the unknown coding). - Header field bytes are decoded with the platform-default charset. Under UTF-8 the wire bytes `E2 84 AA` decode to U+212A KELVIN SIGN, which `String.equalsIgnoreCase` Unicode-case-folds to `k`, so `Transfer-Encoding: chun<U+212A>ed` matches `chunked` once the comparison is made case-insensitive without also pinning the decode to ISO-8859-1. ## Impact ### Server Request smuggling when ember-server is an origin behind an intermediary that honours `Transfer-Encoding` case-insensitively per RFC, forwards the header value verbatim, and reuses keep-alive connections to the backend: - 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 partial smuggled prefix left in Ember's connection buffer is concatenated with the next victim's request on the same pooled backend connection, exposing its headers (e.g. `Cookie`, `Authorization`) to the attacker. - Cache poisoning: the smuggled response is associated with the next request key in a caching proxy. ### Client ember-client shares the same `HeaderP.parse` on the response path, enabling response smuggling when http4s is used as a gateway. This is less severe: it requires a malicious or compromised upstream rather than an anonymous remote client. ## Preconditions - Unauthenticated remote attacker (server) - ember-server as origin behind a keep-alive intermediary - Intermediary treats `Transfer-Encoding` case-insensitively (per RFC) and forwards the header value without lowercasing it - Malicious or compromised upstream (client) ## Workarounds - Intermediary fully buffers and re-encodes request bodies (e.g. nginx with default `proxy_request_buffering on`) - Intermediary normalises the `Transfer-Encoding` value (lowercases the token) before forwarding - Disable backend keep-alive between the intermediary and Ember

Advisory Timeline

  • First published September 15, 2026 (27 days ago).
  • Last revised September 15, 2026 — 0 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Maven
Update org.http4s:http4s-ember-core_2.13 to 0.23.35 or later
<!-- Update pom.xml dependency version to 0.23.35 for org.http4s:http4s-ember-core_2.13 -->
Maven
Update org.http4s:http4s-ember-core_2.13 to 1.0.0-M47 or later
<!-- Update pom.xml dependency version to 1.0.0-M47 for org.http4s:http4s-ember-core_2.13 -->
Maven
Update org.http4s:http4s-ember-core_2.12 to 0.23.35 or later
<!-- Update pom.xml dependency version to 0.23.35 for org.http4s:http4s-ember-core_2.12 -->
Maven
Update org.http4s:http4s-ember-core_3 to 0.23.35 or later
<!-- Update pom.xml dependency version to 0.23.35 for org.http4s:http4s-ember-core_3 -->
Maven
Update org.http4s:http4s-ember-core_3 to 1.0.0-M47 or later
<!-- Update pom.xml dependency version to 1.0.0-M47 for org.http4s:http4s-ember-core_3 -->

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (5)

Affects 1 ecosystem: maven (3).

PackageEcosystemAffectedFixed In
org.http4s:http4s-ember-core_2.13
maven
0.10.0-M10, 0.21.0, 0.21.0-M2, 0.21.0-M3 (+110 more)0.23.35
org.http4s:http4s-ember-core_2.13
maven
1.0.0-M10, 1.0.0-M11, 1.0.0-M13, 1.0.0-M14 (+39 more)1.0.0-M47
org.http4s:http4s-ember-core_2.12
maven
0.10.0-M10, 0.21.0, 0.21.0-M2, 0.21.0-M3 (+110 more)0.23.35
org.http4s:http4s-ember-core_3
maven
0.22.0, 0.22.0-M8, 0.22.0-RC1, 0.22.1 (+54 more)0.23.35
org.http4s:http4s-ember-core_3
maven
1.0.0-M22, 1.0.0-M23, 1.0.0-M24, 1.0.0-M25 (+20 more)1.0.0-M47

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.7 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N

Frequently Asked Questions

What is CVE-2026-69205?
Http4s Ember Transfer-Encoding value parsing (TE.CL / TE.0 request smuggling) This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.7/10).
How do I check if my project is affected by CVE-2026-69205?
CVE-2026-69205 affects org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_2.12 and org.http4s:http4s-ember-core_3. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-69205 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.7

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-9998-894r-fwvr

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies