CVE-2026-59901: Netty Bzip2Decoder Infinite Loop DoS
A crafted bzip2 stream can permanently hang the Netty event-loop thread by trapping it in an infinite loop inside the run-length encoding decoder, taking the entire server offline with a single…
The problem
Netty's Bzip2Decoder (in netty-codec-compression 4.2.x and netty-codec 4.1.x) passes incoming bytes to Bzip2BlockDecompressor.read() on the event-loop thread. The RLE state machine inside that method loops to produce output bytes one at a time. It never yields back to the caller when a specially crafted repeat-count is provided, so the thread spins forever.
Because Netty is event-driven, one stuck event-loop thread means every connection sharing that thread stops being served. A single unauthenticated TCP request carrying a malformed bzip2 block is enough to cause a full denial of service.
The fix
Upgrade to io.netty:netty-codec-compression 4.2.16.Final (or io.netty:netty-codec 4.1.136.Final for the 4.1 branch). There is no configuration workaround; the only option short of patching is to remove Bzip2Decoder from the pipeline entirely if bzip2 support is not required.
Reported by normanmaurer (Norman Maurer, Netty maintainer).
Related research
- highCVE-2026-10050CVE-2026-10050: Eclipse Jetty Digest Authentication Bypass via ISO-8859-1 Encoding Collision
- high · 7.5CVE-2024-7708CVE-2024-7708: Eclipse Jetty jetty-server Buffer Leak DoS via 100-Continue Requests
- highCVE-2026-56745CVE-2026-56745: netty-codec-http SpdyHttpDecoder ByteBuf Reference Leak
- high · 7.4CVE-2026-56822CVE-2026-56822: netty-handler-ssl-ocsp TOCTOU Race in OcspServerCertificateValidator