Description
Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, DigestAuth replay protection records lastNc plus one instead of the highest nonce-count value it has accepted. When a legitimate client sends noncontiguous nc values because of parallel or retried requests, the stored counter remains below the accepted maximum, allowing a passive observer to replay a captured Authorization header multiple times. Successful replays execute authenticated requests, including state-changing operations, as the captured user. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| http4s | http4s | < 0.23.35, >= 1.0.0-M1, < 1.0.0-M47 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.http4s:http4s-ember-core_2.12 | < 0.23.35 | 0.23.35 | GHSA-9xww-74xv-gjfp |
| Maven | org.http4s:http4s-ember-core_2.13 | < 0.23.35 | 0.23.35 | GHSA-9xww-74xv-gjfp |
| Maven | org.http4s:http4s-ember-core_2.13 | >= 1.0.0-M1, < 1.0.0-M47 | 1.0.0-M47 | GHSA-9xww-74xv-gjfp |
| Maven | org.http4s:http4s-ember-core_3 | < 0.23.35 | 0.23.35 | GHSA-9xww-74xv-gjfp |
| Maven | org.http4s:http4s-ember-core_3 | >= 1.0.0-M1, < 1.0.0-M47 | 1.0.0-M47 | GHSA-9xww-74xv-gjfp |