CVE-2026-120317
MediumCVSS 5.9Summary
http4k from 4.9.10.0 before 6.60.0.0 contains a missing integrity check vulnerability because DigestEncoder computes the auth-int digest without hashing the request entity body. On-path attackers on non-TLS channels can rewrite the body of authenticated requests while keeping the Authorization header valid, executing state-changing actions as the victim.
Risk Assessment
An on-path attacker could perform actions on behalf of the victim without valid content authentication, leading to unauthorized state changes.
Recommendation
Upgrade http4k to version 6.60.0.0 or later and enforce TLS for authenticated requests.
Other vulnerabilities in http4k
See all- CVE-2026-120316Medium
http4k before 6.62.0.0-ee contains a path traversal vulnerability in ThymeleafTemplates Caching and HotReload. Unauthenticated attackers can read files outside baseTemplateDir by supplying ../ segments in ViewModel.template() values, as Thymeleaf's FileTemplateResolver resolves escaped paths without containment checks.
- CVE-2024-55875Critical
http4k is a functional toolkit for Kotlin HTTP applications. Prior to version 6.50.0.0, there was a potential XXE (XML External Entity Injection) vulnerability that could allow attackers to read local sensitive information on the server, trigger SSRF attacks, and even execute code under certain circumstances.
- CVE-2026-100834Medium
http4k's Digest authentication module (org.http4k:http4k-security-digest) before versions 6.48.0.0, 5.42.0.0 and 4.51.0.0 defaults the nonceVerifier parameter of ServerFilters.DigestAuth and DigestAuthProvider to { true }, so every nonce is accepted regardless of its value, age, or prior use. Applications relying on this default have no replay protection on Digest authentication: an attacker who can capture a valid 'Authorization: Digest' response (for example by observing network traffic or reading logs) can replay it indefinitely against the same protected resource.
- CVE-2026-100725Medium
http4k (Maven artifact org.http4k:http4k-core) before versions 6.48.0.0, 5.42.0.0, and 4.51.0.0 ships a BasicCookieStorage that does not enforce RFC 6265 scoping rules for cookie domain, path, and Secure attributes. When a single BasicCookieStorage instance is used to talk to more than one origin or scheme, cookies stored for one origin can be sent to other origins, and cookies marked Secure can be sent over plain HTTP, potentially disclosing session cookies or other sensitive values to unauthorized hosts or network observers.
- CVE-2026-100724Medium
http4k (Maven package org.http4k:http4k-core) before versions 6.49.0.0, 5.42.0.0, and 4.51.0.0 uses substring (Contains) matching on the Host header by default in reverseProxy() and reverseProxyRouting() when dispatching to configured virtual hosts. If these functions are deployed as a public-facing inbound HTTP handler with two or more configured virtual hosts, a remote attacker can supply a Host header that merely contains a configured vhost name (for example Host: admin.evil.com for a vhost configured as "admin") and be routed to that vhost, bypassing routing-based authorization.
- CVE-2026-54148High
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.
- CVE-2026-54147Medium
In http4k prior to 4.51.0.0, 5.42.0.0, and 6.50.0.0, DigestAuthProvider.verify in http4k-security-digest ignores its configured algorithm parameter and verifies every Digest response with hardcoded MD5. Deployments configured for SHA-256 therefore receive weaker MD5-based verification.
- CVE-2026-53659High
In http4k before 4.51.0.0, 5.42.0.0, and 6.49.0.0, ServerFilters.GZip, RequestFilters.GunZip, and the underlying Gzip request-body decompression functions impose no limit on decompressed size. An unauthenticated client can send a small gzip-encoded request body that expands to gigabytes, exhausting the JVM heap.
Original NVD description (English source)
http4k from 4.9.10.0 before 6.60.0.0 contains a missing integrity check vulnerability because DigestEncoder computes the auth-int digest without hashing the request entity body. On-path attackers on non-TLS channels can rewrite the body of authenticated requests while keeping the Authorization header valid, executing state-changing actions as the victim.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

