GHSA-fm4g-76c9-7w69: High severity maven/org.http4s:http4s-ember-server_3 vulnerability

Published Sep 15, 2026
·
Updated

The DigestAuth server middleware's stale-nonce cleanup uses an inverted comparison: it removes fresh nonces and stops at the first stale one. Because a new nonce is created for every unauthenticated challenge, an attacker can drive the nonce map to grow without bound until the JVM runs out of heap.

Impact

Unauthenticated remote denial of service (gradual heap exhaustion / OOM) against any service using DigestAuth. The leak is persistent.

Preconditions

- Application uses DigestAuth on at least one route.

Workarounds

- Front the DigestAuth protected routes with a rate limiter to slow the leak. - Restart periodically.

Fixes

- The eviction logic is corrected. - A max cache size of 1000000 is imposed to protected against a burst between evictions. This limit is not yet configurable.

Affected Software

4 affected componentsFixes available
maven/org.http4s:http4s-ember-server_3>=1.0.0-M1<=1.0.0-M46
1.0.0-M47
maven/org.http4s:http4s-ember-server_2.13>=1.0.0-M1<=1.0.0-M46
1.0.0-M47
maven/org.http4s:http4s-ember-server_3<=0.23.34
0.23.35
maven/org.http4s:http4s-ember-server_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-server_3 to a version that resolves this vulnerability.

    Fixed in 1.0.0-M47
  2. Upgrade

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

    Fixed in 1.0.0-M47
  3. Upgrade

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

    Fixed in 0.23.35
  4. Upgrade

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

    Fixed in 0.23.35
  5. Upgrade

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

    Fixed in 0.23.35
  6. Configuration

    Set/impose the DigestAuth nonce cache max size to 1000000 to protect against burst growth between evictions.

    DigestAuth server middleware max cache size = 1000000
  7. Compensating control

    Place the DigestAuth-protected routes behind a rate limiter to slow the nonce map growth/leak during unauthenticated challenge traffic.

  8. Operational

    Restart periodically to mitigate the persistent nonce/heap exhaustion until the eviction logic/stale-nonce cleanup is corrected.

Event History

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

Frequently Asked Questions

1

Which deployments are exposed to this denial-of-service condition?

Any service with DigestAuth enabled on at least one route is exposed. The affected endpoint can be reached remotely without authentication.

2

What does an attacker need to do to trigger the resource exhaustion?

An attacker only needs to cause repeated unauthenticated DigestAuth challenges, each of which creates a new nonce. No credentials, prior access, or user interaction are required.

3

What can be done if the fix cannot be deployed immediately?

Place rate limiting in front of routes protected by DigestAuth to slow nonce accumulation, and restart the service periodically. These measures mitigate the persistent heap growth but do not correct the faulty eviction behavior.

4

How does the fix reduce the risk of another nonce-cache burst?

The fix corrects the nonce eviction logic and imposes a maximum cache size of 1,000,000 entries. The cache-size limit is not configurable.

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