GHSA-6m4x-pp6q-5jmm: High severity maven/org.http4s:http4s-ember-core_3 vulnerability

Published Sep 15, 2026
·
Updated

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.

Impact

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.

Workarounds

- Disable HTTP/2 to remove the vector entirely. - Apply an aggregate request-entity size limit (e.g. EntityLimiter middleware) on routes that consume the body. - Ensure handlers fully drain request bodies with aggressive idle timeouts.

Affected Software

4 affected componentsFixes available
maven/org.http4s:http4s-ember-core_3>=1.0.0-M1<=1.0.0-M46
1.0.0-M47
maven/org.http4s:http4s-ember-core_2.13>=1.0.0-M1<=1.0.0-M46
1.0.0-M47
maven/org.http4s:http4s-ember-core_3<=0.23.34
0.23.35
maven/org.http4s:http4s-ember-core_2.13<=0.23.34
0.23.35

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/org.http4s:http4s-ember-core_3 to a version that resolves this vulnerability.

    Fixed in 1.0.0-M47
  2. Upgrade

    Upgrade maven/org.http4s:http4s-ember-core_2.13 to a version that resolves this vulnerability.

    Fixed in 1.0.0-M47
  3. Upgrade

    Upgrade maven/org.http4s:http4s-ember-core_3 to a version that resolves this vulnerability.

    Fixed in 0.23.35
  4. Upgrade

    Upgrade maven/org.http4s:http4s-ember-core_2.13 to a version that resolves this vulnerability.

    Fixed in 0.23.35
  5. Upgrade

    Upgrade maven/org.http4s:http4s-ember-core_2.12 to a version that resolves this vulnerability.

    Fixed in 0.23.35
  6. Configuration

    Disable HTTP/2 (i.e., do not use .withHttp2) to remove the OOM/DoS vector.

    Ember HTTP/2 (as used with .withHttp2) .withHttp2 / HTTP/2 enablement = disable
  7. Compensating control

    Apply an aggregate request-entity size limit (e.g., via a request/entity limit) so the server rejects overly large/unbounded request bodies.

  8. Compensating control

    Ensure handlers fully drain request bodies; use aggressive idle timeouts so slow-draining/non-draining routes cannot retain unbounded buffered payloads in heap.

Event History

Sep 15, 2026
Advisory Published
via GitHub·07:52 PM
Data Sourced
via GitHub·07:52 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed?

Ember servers built with .withHttp2 are exposed when a route drains request bodies slowly or does not drain them. Ember clients are also exposed when receiving responses from a hostile or compromised server.

2

What does an attacker need to do to trigger the denial of service?

No authentication or user interaction is required. The peer sends an HTTP/2 DATA stream faster than the application consumes it, causing the received payload to accumulate in an unbounded per-stream buffer until heap memory is exhausted.

3

Is HTTP/2 required for exploitation?

Yes. The described vector is in Ember's HTTP/2 flow-control handling; disabling HTTP/2 removes this vector entirely.

4

What can be done while patching is not possible?

Disable HTTP/2, or apply an aggregate request-entity size limit such as EntityLimiter on routes that consume request bodies. Handlers should also fully drain request bodies and use aggressive idle timeouts.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203