GHSA-9xww-74xv-gjfp: Medium severity maven/org.http4s:http4s-ember-core_3 vulnerability

Published Sep 15, 2026
·
Updated

The DigestAuth replay defence stores lastNc + 1 rather than the nonce-count (nc) value it just accepted. When a legitimate client sends non-contiguous nc values (parallel or retried requests, as browsers do), the server's counter lags behind the highest nc seen, and a captured Authorization header can be replayed multiple times.

Impact

A passive observer can turn one captured Digest-authenticated request into several replayed authenticated (state-changing) requests, defeating the core replay protection Digest provides over Basic.

Preconditions

- Application uses DigestAuth. - Attacker can passively observe at least one legitimate digest request. - Legitimate client emits an nc more than one greater than the last, for instance from a parallel or retried request.

Workarounds

- Deploy over TLS so requests cannot be captured.

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

    Deploy DigestAuth behind TLS so requests (including captured Authorization headers) cannot be passively observed and replayed.

    DigestAuth Transport security (TLS) = Deploy over TLS
  7. Compensating control

    Mitigate replayed state-changing Digest requests by compensating externally (e.g., additional network/WAF/ACL controls) since an attacker can replay a captured Authorization header into multiple authenticated requests when the server’s DigestAuth replay defense lags behind non-contiguous nc values.

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

Who is exposed to this issue?

Applications using DigestAuth in http4s-ember-core for Scala 3 or Scala 2.13 are exposed when an attacker can passively observe Digest-authenticated traffic and clients issue non-contiguous nonce-count values, such as during parallel or retried requests.

2

What does an attacker need to exploit the replay weakness?

The attacker must capture at least one legitimate Digest Authorization header and the legitimate client must send an nc value more than one greater than the last accepted value. The attacker can then replay the captured request multiple times, including state-changing requests.

3

What can be done if updating is not immediately possible?

Deploy Digest-authenticated traffic over TLS to prevent passive observers from capturing Authorization headers. This workaround addresses the stated capture prerequisite.

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