GHSA-VXXM-WWQH-MH47
Vulnerability from github – Published: 2026-08-17 21:56 – Updated: 2026-08-17 21:57Impact
An issue in DigestAuthProvider.verify:
Algorithm silently forced to MD5. The configured algorithm parameter was ignored — every verification used MD5 regardless of configuration. Deployments believing they were running SHA-256 Digest auth were silently inheriting MD5's collision weaknesses, including documented attack paths against Digest schemes that rely on the hash being collision-resistant.
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 enterprise@http4k.org (if Digest auth is present in your v5.x line) |
| v4.x (LTS) | 4.51.0.0 | Enterprise — contact enterprise@http4k.org (if Digest auth is present in your v4.x line) |
The fix:
- Hashes with the configured algorithm instead of hardcoded MD5.
Workarounds
For deployments that cannot upgrade immediately:
- Algorithm gap: do not rely on algorithm configuration; assume MD5 is in use and treat the Digest credentials as low-trust.
References
- Vulnerability first present:
8a52b615b1 - Algorithm fix:
65d23d99fc - Fix release: v6.50.0.0
- Background: RFC 7616 — HTTP Digest Access Authentication
{
"affected": [
{
"package": {
"ecosystem": "Maven",
"name": "org.http4k:http4k-security-digest"
},
"ranges": [
{
"events": [
{
"introduced": "6.0.0.0"
},
{
"fixed": "6.50.0.0"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.http4k:http4k-security-digest"
},
"ranges": [
{
"events": [
{
"introduced": "5.0.0.0"
},
{
"fixed": "5.42.0.0"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.http4k:http4k-security-digest"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "4.48.2.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-54147"
],
"database_specific": {
"cwe_ids": [
"CWE-327"
],
"github_reviewed": true,
"github_reviewed_at": "2026-08-17T21:56:58Z",
"nvd_published_at": null,
"severity": "MODERATE"
},
"details": "### Impact\n\nAn issue in `DigestAuthProvider.verify`:\n\n **Algorithm silently forced to MD5.** The configured `algorithm` parameter was ignored \u2014 every verification used MD5 regardless of configuration. Deployments believing they were running SHA-256 Digest auth were silently inheriting MD5\u0027s collision weaknesses, including documented attack paths against Digest schemes that rely on the hash being collision-resistant.\n\n**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).\n\n### Patches\n\n| Line | Fixed in | Edition |\n|------|----------|---------|\n| v6.x (Community) | **6.50.0.0** | Community |\n| v5.x (LTS) | **5.42.0.0** | Enterprise \u2014 contact [enterprise@http4k.org](mailto:enterprise@http4k.org) (if Digest auth is present in your v5.x line) |\n| v4.x (LTS) | **4.51.0.0** | Enterprise \u2014 contact [enterprise@http4k.org](mailto:enterprise@http4k.org) (if Digest auth is present in your v4.x line) |\n\nThe fix:\n- Hashes with the configured `algorithm` instead of hardcoded MD5.\n\n### Workarounds\n\nFor deployments that cannot upgrade immediately:\n- **Algorithm gap:** do not rely on `algorithm` configuration; assume MD5 is in use and treat the Digest credentials as low-trust.\n\n### References\n\n- Vulnerability first present: [`8a52b615b1`](https://github.com/http4k/http4k/commit/8a52b615b1)\n- Algorithm fix: [`65d23d99fc`](https://github.com/http4k/http4k/commit/65d23d99fc)\n- Fix release: [v6.50.0.0](https://github.com/http4k/http4k/releases/tag/6.50.0.0)\n- Background: [RFC 7616 \u2014 HTTP Digest Access Authentication](https://datatracker.ietf.org/doc/html/rfc7616)",
"id": "GHSA-vxxm-wwqh-mh47",
"modified": "2026-08-17T21:57:58Z",
"published": "2026-08-17T21:56:58Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/http4k/http4k/security/advisories/GHSA-vxxm-wwqh-mh47"
},
{
"type": "WEB",
"url": "https://github.com/http4k/http4k/commit/65d23d99fc"
},
{
"type": "PACKAGE",
"url": "https://github.com/http4k/http4k"
},
{
"type": "WEB",
"url": "https://github.com/http4k/http4k/releases/tag/6.50.0.0"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N",
"type": "CVSS_V3"
}
],
"summary": "http4k: `DigestAuthProvider.verify` ignored configured algorithm and did not bind to request URI"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.