CVE-2026-54148
http4k: `DigestAuthProvider.verify` did not bind to request URI
http4k is a functional toolkit for Kotlin HTTP applications. Prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest does not compare the uri parameter in an Authorization: Digest response with the actual request URL. An attacker who captures a valid Digest authentication response can replay it against another URL served by the same realm, bypassing the per-request-URI binding and potentially gaining unauthorized read or write access. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.50.0.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.1
http4k: `DigestAuthProvider.verify` did not bind to request URI
http4k is a functional toolkit for Kotlin HTTP applications. Prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest does not compare the uri parameter in an Authorization: Digest response with the actual request URL. An attacker who captures a valid Digest authentication response can replay it against another URL served by the same realm, bypassing the per-request-URI binding and potentially gaining unauthorized read or write access. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.50.0.0.
- Record
CVE-2026-54148- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
EUVDEUVD-2026-83039
8.1
http4k is a functional toolkit for Kotlin HTTP applications. Prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest does not compare the uri parameter in an Authorization: Digest response with the actual request URL. An attacker who captures a valid Digest authentication response can replay it against another URL served by the same realm, bypassing the per-request-URI binding and potentially gaining unauthorized read or write access. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.50.0.0.
- Record
EUVD-2026-83039- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-p28p-j94q-pg32
8.1
http4k: `DigestAuthProvider.verify` did not bind to request URI
Impact
An issue in DigestAuthProvider.verify:
The uri parameter in the client's Authorization: Digest … response was not checked against the actual request URL. A captured Digest authentication response could be replayed against any other URL served by the same realm, breaking the per-request-URL binding the Digest scheme assumes.
Who is affected: any application using http4k-security-digest for HTTP Digest authentication. The bug has been present since DigestAuthProvider was introduced (commit 8a52b615b1, 2021).
Patches
| Line | Fixed in | Edition | |------|----------|---------| | v6.x (Community) | 6.50.0.0 | Community | | v5.x (LTS) | 5.42.0.0 | Enterprise — contact [email protected] (if Digest auth is present in your v5.x line) | | v4.x (LTS) | 4.51.0.0 | Enterprise — contact [email protected] (if Digest auth is present in your v4.x line) |
The fix:
- Rejects credentials whose
uriparameter does not match the request URL.
Workarounds
For deployments that cannot upgrade immediately:
- URI binding gap: place Digest auth behind a reverse proxy that pins requests to a single URL.
References
- Vulnerability first present:
8a52b615b1 - URI binding fix:
725f1b9697 - Fix release: v6.50.0.0
- Background: RFC 7616 — HTTP Digest Access Authentication
- Record
GHSA-p28p-j94q-pg32- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
NVD
8.1
http4k is a functional toolkit for Kotlin HTTP applications. Prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest does not compare the uri parameter in an Authorization: Digest response with the actual request URL. An attacker who captures a valid Digest authentication response can replay it against another URL served by the same realm, bypassing the per-request-URI binding and potentially gaining unauthorized read or write access. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.50.0.0.
- Record
CVE-2026-54148- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
OSV
8.1
http4k: `DigestAuthProvider.verify` did not bind to request URI
http4k is a functional toolkit for Kotlin HTTP applications. Prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest does not compare the uri parameter in an Authorization: Digest response with the actual request URL. An attacker who captures a valid Digest authentication response can replay it against another URL served by the same realm, bypassing the per-request-URI binding and potentially gaining unauthorized read or write access. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.50.0.0.
- Record
CVE-2026-54148- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
OSVGHSA-p28p-j94q-pg32
8.1
http4k: `DigestAuthProvider.verify` did not bind to request URI
Impact
An issue in DigestAuthProvider.verify:
The uri parameter in the client's Authorization: Digest … response was not checked against the actual request URL. A captured Digest authentication response could be replayed against any other URL served by the same realm, breaking the per-request-URL binding the Digest scheme assumes.
Who is affected: any application using http4k-security-digest for HTTP Digest authentication. The bug has been present since DigestAuthProvider was introduced (commit 8a52b615b1, 2021).
Patches
| Line | Fixed in | Edition | |------|----------|---------| | v6.x (Community) | 6.50.0.0 | Community | | v5.x (LTS) | 5.42.0.0 | Enterprise — contact [email protected] (if Digest auth is present in your v5.x line) | | v4.x (LTS) | 4.51.0.0 | Enterprise — contact [email protected] (if Digest auth is present in your v4.x line) |
The fix:
- Rejects credentials whose
uriparameter does not match the request URL.
Workarounds
For deployments that cannot upgrade immediately:
- URI binding gap: place Digest auth behind a reverse proxy that pins requests to a single URL.
References
- Vulnerability first present:
8a52b615b1 - URI binding fix:
725f1b9697 - Fix release: v6.50.0.0
- Background: RFC 7616 — HTTP Digest Access Authentication
- Record
GHSA-p28p-j94q-pg32- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.http4k:http4k-security-digestMaven |
6.0.0.0 up to 6.50.0.0 | 6.50.0.0 |
org.http4k:http4k-security-digestMaven |
5.0.0.0 up to 5.42.0.0 | 5.42.0.0 |
org.http4k:http4k-security-digestMaven |
4.0.0.0 up to 4.51.0.0 | 4.51.0.0 |
org.http4k:http4k-security-digestMaven |
6.0.0.0 up to 6.50.0.0, plus listed versions 6.0.1.06.1.0.06.1.0.16.10.0.06.10.1.0 Show 45 moreShow less6.10.2.06.11.0.06.11.1.06.12.0.06.13.0.06.14.0.06.15.0.06.15.0.16.15.1.06.16.0.06.17.0.06.18.0.16.18.1.06.19.0.06.2.0.06.20.0.06.20.0.16.20.0.26.20.0.36.20.1.06.20.2.06.20.2.16.21.0.06.21.1.06.22.0.06.23.0.06.23.1.06.24.0.06.24.1.06.25.0.06.25.1.06.26.0.06.26.1.06.27.0.06.28.0.06.28.1.06.29.0.06.30.0.06.30.1.06.31.0.06.31.1.06.32.0.06.33.0.06.34.0.06.35.0.0 |
6.50.0.0 |
org.http4k:http4k-security-digestMaven |
5.0.0.0 up to 5.42.0.0, plus listed versions 5.1.0.05.1.1.05.1.1.15.1.2.05.1.2.1 Show 45 moreShow less5.10.0.05.10.1.05.10.2.05.10.3.05.10.4.05.10.5.05.10.6.05.10.7.05.11.0.05.11.1.05.12.0.05.12.1.05.12.2.05.12.2.15.13.0.05.13.0.15.13.1.05.13.2.05.13.4.05.13.4.15.13.5.05.13.6.05.13.6.15.13.7.05.13.8.05.13.9.05.14.0.05.14.1.05.14.2.05.14.4.05.14.5.05.15.0.05.16.0.05.16.1.05.16.2.05.17.0.05.18.1.05.18.2.05.19.0.05.2.0.05.2.1.05.20.0.05.21.0.05.21.1.05.21.2.0 |
5.42.0.0 |
org.http4k:http4k-security-digestMaven |
4.0.0.0 up to 4.51.0.0, plus listed versions 4.10.0.0.04.10.0.14.10.1.04.11.0.04.11.0.1 Show 45 moreShow less4.12.0.04.12.0.14.12.1.04.12.2.04.12.3.04.12.3.14.13.0.04.13.1.04.13.3.04.13.4.04.14.0.04.14.1.04.14.1.14.14.1.24.14.1.34.14.1.44.15.0.04.16.0.04.16.1.04.16.2.04.16.3.04.17.0.04.17.1.04.17.2.04.17.3.04.17.4.04.17.5.04.17.6.04.17.7.04.17.8.04.17.9.04.18.0.04.19.0.04.19.1.04.19.2.04.19.3.04.19.4.04.19.5.04.20.0.04.20.1.04.20.2.04.21.0.04.21.1.04.21.1.14.22.0.0 |
4.51.0.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-54148 is a high vulnerability (CVSS 8.1) in Http4k, published August 17, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.58%, the 47th percentile. Fixed in org.http4k:http4k-security-digest 6.50.0.0.
References
github.com/http4k/http4k/security/advisories/GHSA-p28p-j94q-pg32
github.com/github/advisory-database/pull/9477
github.com/http4k/http4k/commit/725f1b96978dd433348e2b149c1e72b9f5147c90
github.com/http4k/http4k/releases/tag/6.50.0.0
github.com/http4k/http4k/commit/725f1b9697
nvd.nist.gov/vuln/detail/CVE-2026-54148
github.com/advisories/GHSA-p28p-j94q-pg32
github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54148.json
github.com/http4k/http4k
Left out here: 205 versions. The JSON record has them.