CVE-2026-69209: Http4s: WebSocket decoder accepts unbounded message sizes

Published Sep 15, 2026
·
Updated

Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, The shared WebSocket decoder permits unbounded message buffering because defragmentation accumulates fragments without a limit and FrameTranscoder accepts declared lengths up to Int.MaxValue. A remote client that completes a WebSocket handshake against an http4s-blaze-server or http4s-ember-server endpoint can exhaust server memory with oversized frames or fragmented messages. The patched decoder applies a configurable 64 MiB default limit to individual frames and defragmented messages through EmberServerBuilder.withMaxWebSocketMessageSize. This issue is fixed in versions 0.23.35 and 1.0.0-M47.

Affected Software

3 affected components
Http4s>0.23.35<=1.0.0-M47
Http4s<0.23.35
Http4s<1.0.0-M47

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade http4s-blaze-server/http4s-ember-server to a version that resolves this vulnerability.

    Fixed in 0.23.35
  2. Upgrade

    Upgrade http4s-blaze-server/http4s-ember-server to a version that resolves this vulnerability.

    Fixed in 1.0.0-M47
  3. Configuration

    If using http4s-ember-server, set EmberServerBuilder.withMaxWebSocketMessageSize to a defined maximum (the patched decoder applies a configurable 64 MiB default) to limit individual WebSocket frames and defragmented messages.

    EmberServerBuilder (http4s-ember-server) withMaxWebSocketMessageSize = 64 MiB default limit (configurable)

Event History

Sep 15, 2026
CVE Published
via MITRE·06:55 PM
Data Sourced
via MITRE·06:55 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to remote exploitation?

http4s applications that expose WebSocket endpoints through http4s-blaze-server or http4s-ember-server are exposed if they use a version earlier than 0.23.35 or 1.0.0-M47. A remote client only needs to complete a WebSocket handshake with the endpoint.

2

What does an attacker need to send to trigger the issue?

An attacker can send an oversized WebSocket frame or a fragmented WebSocket message. The vulnerable decoder can buffer the data without a limit, allowing server memory exhaustion.

3

Is there a size limit after upgrading?

Yes. The patched decoder applies a configurable default limit of 64 MiB to individual frames and defragmented messages. The limit is configured through EmberServerBuilder.withMaxWebSocketMessageSize.

4

How can I determine whether an application is affected?

Check whether the application provides a WebSocket endpoint using http4s-blaze-server or http4s-ember-server, then verify its http4s version. Versions before 0.23.35 and 1.0.0-M47 are affected.

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