CVE-2026-53659
http4k: Unbounded gzip decompression in `ServerFilters.GZip` / `RequestFilters.GunZip` allowed memory-exhaustion DoS
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
http4k: Unbounded gzip decompression in `ServerFilters.GZip` / `RequestFilters.GunZip` allowed memory-exhaustion DoS
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.
- Record
CVE-2026-53659- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
EUVDEUVD-2026-77694
7.5
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.
- Record
EUVD-2026-77694- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-g4w2-6h2r-3m3w
7.5
http4k: Unbounded gzip decompression in `ServerFilters.GZip` / `RequestFilters.GunZip` allowed memory-exhaustion DoS
Impact
ServerFilters.GZip and RequestFilters.GunZip (and the underlying Gzip functions used to decompress request bodies) did not impose any cap on the decompressed size. A small malicious gzip-encoded request body (on the order of kilobytes) could decompress to gigabytes, exhausting the JVM heap and denying service to other clients.
Who is affected: any http4k server that accepts gzip-encoded requests via ServerFilters.GZip or RequestFilters.GunZip. Exploitable by any unauthenticated client. The vulnerability was introduced on 2017-08-01 (commit 2618fe08f9) and was present for ~9 years.
Patches
| Line | Fixed in | Edition | |------|----------|---------| | v6.x (Community) | 6.49.0.0 | Community | | v5.x (LTS) | 5.42.0.0 | Enterprise — contact [email protected] | | v4.x (LTS) | 4.51.0.0 | Enterprise — contact [email protected] |
The fix caps decompression at 10MB by default; oversized requests through ServerFilters.GZip / RequestFilters.GunZip now return 413 Request Entity Too Large, and decompressing elsewhere throws SizeLimitExceededException. The keyed hmacSHA256 helper and other safe paths are unaffected.
Workarounds
For deployments that cannot upgrade immediately:
- Replace the
GZip/GunZipfilters with custom versions that wrap the decompressedInputStreamin a size-limited reader, or - Strip gzip-encoded request support at the edge (CDN, reverse proxy, or load balancer).
References
- Vulnerability introduced:
2618fe08f9 - Fix release: v6.49.0.0
- Background: CWE-409 — Improper Handling of Highly Compressed Data
- Record
GHSA-g4w2-6h2r-3m3w- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-53659- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
OSV
7.5
http4k: Unbounded gzip decompression in `ServerFilters.GZip` / `RequestFilters.GunZip` allowed memory-exhaustion DoS
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.
- Record
CVE-2026-53659- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-05
OSVGHSA-g4w2-6h2r-3m3w
7.5
http4k: Unbounded gzip decompression in `ServerFilters.GZip` / `RequestFilters.GunZip` allowed memory-exhaustion DoS
Impact
ServerFilters.GZip and RequestFilters.GunZip (and the underlying Gzip functions used to decompress request bodies) did not impose any cap on the decompressed size. A small malicious gzip-encoded request body (on the order of kilobytes) could decompress to gigabytes, exhausting the JVM heap and denying service to other clients.
Who is affected: any http4k server that accepts gzip-encoded requests via ServerFilters.GZip or RequestFilters.GunZip. Exploitable by any unauthenticated client. The vulnerability was introduced on 2017-08-01 (commit 2618fe08f9) and was present for ~9 years.
Patches
| Line | Fixed in | Edition | |------|----------|---------| | v6.x (Community) | 6.49.0.0 | Community | | v5.x (LTS) | 5.42.0.0 | Enterprise — contact [email protected] | | v4.x (LTS) | 4.51.0.0 | Enterprise — contact [email protected] |
The fix caps decompression at 10MB by default; oversized requests through ServerFilters.GZip / RequestFilters.GunZip now return 413 Request Entity Too Large, and decompressing elsewhere throws SizeLimitExceededException. The keyed hmacSHA256 helper and other safe paths are unaffected.
Workarounds
For deployments that cannot upgrade immediately:
- Replace the
GZip/GunZipfilters with custom versions that wrap the decompressedInputStreamin a size-limited reader, or - Strip gzip-encoded request support at the edge (CDN, reverse proxy, or load balancer).
References
- Vulnerability introduced:
2618fe08f9 - Fix release: v6.49.0.0
- Background: CWE-409 — Improper Handling of Highly Compressed Data
- Record
GHSA-g4w2-6h2r-3m3w- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-409
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.http4k:http4k-coreMaven |
5.0.0.0 up to 5.42.0.0 | 5.42.0.0 |
org.http4k:http4k-coreMaven |
through 4.48.2.0 | None known |
org.http4k:http4k-coreMaven |
6.0.0.0 up to 6.49.0.0 | 6.49.0.0 |
org.http4k:http4k-coreMaven |
6.0.0.0 up to 6.49.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.49.0.0 |
org.http4k:http4k-coreMaven |
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-coreMaven |
through 4.48.2.0, plus listed versions 0.21.00.22.01.0.01.1.01.10.0 Show 45 moreShow less1.11.01.13.01.14.01.15.01.16.01.17.01.18.01.19.01.19.11.2.01.20.01.21.01.21.11.22.01.22.21.23.01.24.01.25.01.25.11.26.01.26.11.26.21.27.01.28.01.3.01.30.01.31.01.32.01.32.11.32.21.33.01.33.11.4.01.5.01.6.01.7.01.8.01.9.02.0.02.0.12.0.22.0.32.0.42.0.52.1.0 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| 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-53659 is a high vulnerability (CVSS 7.5) 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.63%, the 50th percentile. Fixed in org.http4k:http4k-core 5.42.0.0.
References
github.com/http4k/http4k/security/advisories/GHSA-g4w2-6h2r-3m3w
github.com/http4k/http4k/commit/2618fe08f9801353012561ae1f1382fa2d37bac9
github.com/http4k/http4k/commit/9f9e02f8efbbe04e0c70f1c46eef5d9d9067ea5b
github.com/http4k/http4k/releases/tag/6.49.0.0
github.com/advisories/GHSA-g4w2-6h2r-3m3w
github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53659.json
nvd.nist.gov/vuln/detail/CVE-2026-53659
github.com/http4k/http4k
Left out here: 659 versions. The JSON record has them.