| Package | Affected versions | Patched versions |
|---|---|---|
| org.http4s:http4s-ember-core_2.12 | < 0.23.35 | 0.23.35 |
| org.http4s:http4s-ember-core_2.13 | ≥ 1.0.0-M1, < 1.0.0-M47< 0.23.35 | 1.0.0-M470.23.35 |
| org.http4s:http4s-ember-core_3 | ≥ 1.0.0-M1, < 1.0.0-M47< 0.23.35 | 1.0.0-M470.23.35 |
Ember's HTTP/2 stack replenishes the inbound flow-control window based on bytes received off the wire, not bytes consumed by the application. Received DATA is buffered in an unbounded per-stream channel. Flow control therefore provides no backpressure: a peer can stream a large or unbounded body faster than the application drains it and the connection retains every payload in heap.
This is the read-path mirror of the outbound queue issue.
This affects an Ember receiving a request body and an Ember client receiving a response body from a hostile server.
Unauthenticated remote denial of service (OOM) against any Ember server built
.withHttp2 for a non-draining or slow-draining route, and against an Ember client consuming from a hostile or compromised server.
EntityLimiter middleware) on routes that consume the body.Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free