Skip to main content

http4k EUVDEUVD-2026-115006

| CVE-2026-120317 HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-11-02 VulnCheck GHSA-65gw-vqgg-jvcf
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain on-path MITM on non-TLS channel
  2. Delivery
    Observe victim's authenticated auth-int request
  3. Exploit
    Rewrite entity body, keep Authorization header
  4. Execution
    Body-less digest verification accepts request
  5. Impact
    Execute state-changing action as victim principal

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

Requires all of: (1) the non-default configuration ServerFilters.DigestAuth(..., qop = listOf(Qop.AuthInt), ...) - the default Qop.Auth is not exploitable for this issue; (2) a non-TLS (cleartext) transport, since TLS independently protects the body; (3) an active man-in-the-middle position able to read and rewrite in-flight requests; and (4) interoperability only with a body-omitting peer such as http4k's own DigestAuthReceiver (a strictly RFC 7616-conformant client that hashes the body would fail to authenticate). No credentials are needed and no victim action beyond sending a normal authenticated request is required. These limiting factors - non-default QoP, cleartext channel, and MITM foothold - substantially constrain realistic exploitation despite the unauthenticated (PR:N) nature of the attack.

Impact

Signals point to a genuine but condition-bound integrity flaw rather than a broad emergency. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N) scores 8.2 and correctly reflects that no credentials are needed (PR:N) but that success depends on specialized conditions: AC:H and AT:P capture the need for an active on-path position on a non-TLS channel plus a non-default QoP configuration. KEV status is NO (not CISA-listed) and no EPSS score was provided, so there is no evidence of widespread or automated exploitation; the vuln.today Decision label is 'this_week', consistent with prompt remediation but short of act_now/emergency. A public PoC reference exists in the GHSA advisory - a dependency-free harness that recomputes the auth-int pre-image and shows identical digests for two different bodies - but it demonstrates the digest collision, not a turnkey network MITM exploit, so PoC availability must not be conflated with active exploitation. Note two data caveats: the input Tags label this 'Information Disclosure', which conflicts with the vector (VC:N, VI:H) - this is a message-integrity/tampering flaw, not confidentiality loss; and the fixed version shows a discrepancy (CVE metadata says fixed in 6.60.0.0, while the GHSA source snapshot examined at 6.59.0.0 reported 'not fixed' because 6.60.0.0 was not yet published). Net: a real, high-integrity-impact issue for the specific deployments that enabled auth-int over cleartext, but the non-default configuration and MITM prerequisite meaningfully bound real-world exposure.

Exploit ScenarioDerived

An operator enabled http4k Digest auth with qop=auth-int over a non-TLS channel, trusting auth-int to protect the request body. An on-path attacker with no knowledge of the credentials observes a victim's authenticated state-changing POST (e.g. amount=10&to=alice) and rewrites the body to amount=999999&to=attacker while leaving the method, URI, nonce and Authorization header untouched; the server recomputes a body-independent digest, accepts the tampered request, and executes it as the victim. A public PoC harness in the advisory demonstrates that both bodies produce an identical auth-int digest.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 02, 2026

http4k's Digest authentication advertises the RFC 7616 auth-int quality-of-protection but never binds the request entity body into the digest, so an on-path attacker on a cleartext channel can rewrite the body of an already-authenticated, state-changing request while leaving the Authorization header valid. Affected is the org.http4k:http4k-security-digest module from 4.9.10.0 through 6.59.0.0, and only when an operator explicitly configures ServerFilters.DigestAuth with qop = listOf(Qop.AuthInt); the default Qop.Auth is not affected. The attack is unauthenticated - no credentials are needed - but requires a non-default QoP setting, no TLS, an active MITM foothold, and a body-omitting peer such as http4k's own DigestAuthReceiver, so a strictly RFC 7616-conformant client that hashes the body would simply fail to authenticate. A public PoC reference exists (a dependency-free digest-equivalence harness published with the advisory); it is not verified as working exploit code, and there is no confirmed active exploitation.

RemediationAI

Upgrade org.http4k:http4k-security-digest to 6.60.0.0, the vendor-released fix version, which binds the entity body into the auth-int digest; no released patched version short of that is confirmed. Until the upgrade can be staged, the most direct mitigation is to stop relying on auth-int for integrity: configure qop = listOf(Qop.Auth) instead of Qop.AuthInt, which removes the false guarantee but leaves the body protected only by transport security, or reject auth-int on the verifier and omit it from generateChallenge() if clients must be forced off it - both approaches break interoperability with peers that negotiate auth-int. Terminate digest authentication behind TLS so the body is protected independently of the digest QoP; this fully closes the tampering path but requires certificate management and changes the deployment model in which digest auth is typically chosen as a TLS substitute. Operators who cannot do either should treat every auth-int-protected non-TLS request as body-unauthenticated and avoid carrying state-changing parameters in it. Note that patching involves threading the request body through DigestAuthProvider.verify and ServerFilters.DigestAuth, so streaming-body handlers must be buffered or explicitly restricted once the fix is applied. Advisory: https://github.com/http4k/http4k/security/advisories/GHSA-9xx4-xjpj-xqcf.

Affected VersionsENISA

http4k 4.9.10.0 <6.60.0.0

Affected Packages

euvd http4k fix: 6.60.0.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

HTTP Digest authentication (RFC 7616) uses the qop parameter to select what the response digest protects: qop=auth covers only the method and request URI, while qop=auth-int is specified to additionally bind the entity body via A2 = method:request-uri:H(entity-body). In http4k the encoder at core/security/digest/src/main/kotlin/org/http4k/security/digest/DigestEncoder.kt computes ha2 as H(method:digestUri) for both Auth and AuthInt, so the two pre-images differ only by the literal QoP label; a standing TODO in that file acknowledges the MD5(method:digestURI:MD5(entityBody)) form was never implemented. The server side compounds this: DigestAuthProvider.verify(credentials, method, requestUri) has no body parameter at all, so there is no point in the verification path where the received entity body could be checked against what the client digested. The flaw maps to CWE-345 (insufficient verification of data authenticity), with CWE-924 (improper enforcement of message integrity) also assigned by the project. Because MessageDigest.isEqual compares against a body-independent recomputed digest, method, URI, nonce, nonce-count and Authorization header all remain valid across a body substitution; the demonstrated primitive is full attacker control of the body of an authenticated, state-changing request. The trigger mechanism is documented in the advisory source: the body is never incorporated into the hash, and the weakness has been present since the module was introduced at 4.9.10.0 without any CHANGELOG entry addressing auth-int or entity-body integrity.

Know when Http4K gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

On-path MITM over cleartext plus a non-default auth-int config makes AC:H; attacker needs no credentials (PR:N); only request-body integrity is affected (I:H, C:N/A:N), scope unchanged.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Nov 02, 2026 - 04:16 EUVD
CVE Published
Nov 02, 2026 - 02:01 cve.org
HIGH 8.2

DescriptionCVE.org

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.

Technical POC Analysis

CWE-345 (Insufficient Verification of Data Authenticity), with the advisory cross-tagging CWE-924 (Improper Enforcement of Message Integrity During Transmission).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A HIGH-severity flaw in http4k's Digest authentication module (http4k-security-digest) can allow an on-path attacker to tamper with state-changing requests on cleartext connections when operators have opted into the non-default auth-int quality-of-protection. Exposure is narrow-limited to teams running affected versions (4.9.10.0-6.59.0.0) with this non-default configuration over unencrypted channels-but any organization relying on that configuration could face unauthorized transaction or data modification. Leadership should care because an unpatched design weakness in a widely used JVM HTTP toolkit can undermine request integrity wherever that configuration is deployed.

Business Impact: Medium
Compensating Controls

Apply vendor patch. Until then, switch configurations to the default Qop.Auth, enforce TLS on all authenticated endpoints, and deploy network-level integrity controls (mTLS or signed request bodies) to prevent on-path body tampering.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche Kotlin/JVM HTTP toolkit, modest footprint; vulnerable module optional
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Related Vulnerabilities in http4k Path Traversal and Integrity Check Flaws

View all 2

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy