GitHub Advisoryadvisory · Maven

GHSA-9xww-74xv-gjfp Http4s: DigestAuth allows replay of captured requests

MEDIUM Published 2026-09-15 Modified 2026-09-15 Official page ↗
Aliases
CVE-2026-69206
Ecosystem
Maven
Packages
org.http4s:http4s-ember-core_2.12, org.http4s:http4s-ember-core_2.13, org.http4s:http4s-ember-core_3
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weaknesses
CWE-294
Reviewed
2026-09-15

Affected packages

• Maven org.http4s:http4s-ember-core_2.12: < 0.23.35 → fixed in 0.23.35 • Maven org.http4s:http4s-ember-core_2.13: < 0.23.35 → fixed in 0.23.35 • Maven org.http4s:http4s-ember-core_3: < 0.23.35 → fixed in 0.23.35 • Maven org.http4s:http4s-ember-core_2.13: >= 1.0.0-M1, < 1.0.0-M47 → fixed in 1.0.0-M47 • Maven org.http4s:http4s-ember-core_3: >= 1.0.0-M1, < 1.0.0-M47 → fixed in 1.0.0-M47

Description

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.

Related

Alias · CVE (1)

  • CVE-2026-69206 Http4s is a Scala interface for HTTP services. vulnerability

Weakness · CWE (1)

  • CWE-294 Authentication Bypass by Capture-replay weakness

References