ZeroHour

CVE-2026-53659

niche

Unauthenticated gzip decompression bomb DoS in http4k Kotlin toolkit

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

http4k, a functional toolkit for Kotlin HTTP applications, fails to limit the decompressed size of gzip-encoded request bodies handled by ServerFilters.GZip, RequestFilters.GunZip, and the underlying decompression functions (CWE-409). An unauthenticated attacker can send a small, highly compressed gzip request body that expands to gigabytes in memory, exhausting the JVM heap and denying service to all other clients. Any application built on http4k versions prior to 4.51.0.0, 5.42.0.0, or 6.49.0.0 that enables gzip handling of inbound request bodies is affected. The fix enforces a default 10 MiB limit via SizeLimitedInputStream, returning 413 Request Entity Too Large (or throwing SizeLimitExceededException on other decompression paths). No public proof of concept exists and the issue is not in the CISA KEV catalog, so exploitation appears theoretical at this time.

What to do: Upgrade to http4k 4.51.0.0, 5.42.0.0, or 6.49.0.0 (the fixed release in your major version line) as soon as possible. If you cannot upgrade immediately, wrap gzip request-body decompression with a size-limited stream (e.g., SizeLimitedInputStream, default 10 MiB) or place a reverse proxy in front that caps request body sizes. Audit whether your application actually applies ServerFilters.GZip or RequestFilters.GunZip to inbound request bodies, since only those decompression paths are vulnerable.

Affected
http4k4.x before 4.51.0.0
http4k5.x before 5.42.0.0
http4k6.x before 6.49.0.0
Estimated exposure
nichelikely hundreds to low thousands of downstream applications/servers (order-of-magnitude estimate only) — http4k is an open-source JVM/Kotlin library with no active-install telemetry and no fingerprintable external footprint, so exposure is inferred from its niche adoption among Kotlin shops rather than internet scans or plugin counts.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

http4k is a functional toolkit for Kotlin HTTP applications. Prior to 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 and denying service to other clients. The fix uses SizeLimitedInputStream to enforce a default 10 MiB limit, causes ServerFilters.GZip and RequestFilters.GunZip to return 413 Request Entity Too Large, and causes other decompression paths to throw SizeLimitExceededException. This issue is fixed in versions 4.51.0.0, 5.42.0.0, and 6.49.0.0.

Weakness
CWE-409
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.