CVE-2026-69218: Http4s Ember HTTP/2: unbounded continuation frame accumulation

Published Sep 15, 2026
·
Updated

Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, When Ember receives an HTTP/2 HEADERS or PUSHPROMISE frame without ENDHEADERS, H2Connection buffers the header block and subsequent CONTINUATION fragments without a size bound. A remote peer can keep an incomplete block open and exhaust heap memory before request decoding, affecting an ember-server or ember-client configured with withHttp2. The remediation tracks accumulated size against SETTINGSMAXHEADERLISTSIZE derived from EmberServerBuilder.maxHeaderSize or EmberClientBuilder.maxResponseHeaderSize, sends GOAWAY when the limit is exceeded, and applies receiveHeadersTimeout to incomplete blocks. This issue is fixed in versions 0.23.35 and 1.0.0-M47.

Affected Software

1 affected component
http4s-ember/http2<0.23.35, >0.23.35<=1.0.0-M47

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade http4s ember HTTP/2 to a version that resolves this vulnerability.

    Fixed in 0.23.35
  2. Upgrade

    Upgrade http4s ember HTTP/2 to a version that resolves this vulnerability.

    Fixed in 1.0.0-M47

Event History

Sep 15, 2026
CVE Published
via MITRE·07:22 PM
Data Sourced
via MITRE·07:22 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are affected?

Affected deployments are ember-server or ember-client instances configured with withHttp2. The issue occurs before request decoding when a remote HTTP/2 peer sends an incomplete HEADERS or PUSH_PROMISE header block.

2

What does an attacker need to do to exploit this?

An unauthenticated remote peer needs to send a HEADERS or PUSH_PROMISE frame without END_HEADERS and continue sending CONTINUATION fragments. The accumulated header block is not size-bounded in affected versions, allowing heap memory exhaustion.

3

Are there configuration-based mitigations if upgrading is delayed?

The provided remediation bounds accumulated header data using SETTINGS_MAX_HEADER_LIST_SIZE derived from EmberServerBuilder.maxHeaderSize or EmberClientBuilder.maxResponseHeaderSize, and applies receiveHeadersTimeout to incomplete blocks. Upgrade to 0.23.35 or 1.0.0-M47 to obtain these protections.

4

How is the connection handled after the remediation limit is exceeded?

The remediated implementation sends GOAWAY when the accumulated incomplete header block exceeds the configured limit.

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