(Netty) Bzip2Decoder Infinite Loop Denial-of-Service – CVE-2026-59901 (High) -DC-Aug2026-1479

Listen to this Post

Netty is a widely adopted asynchronous, event-driven network application framework used in countless high-performance services. Prior to versions 4.1.136.Final and 4.2.16.Final, the `Bzip2Decoder` handler within Netty’s compression codec pipeline contained a critical flaw that could be exploited to permanently halt service availability. The vulnerability resides in the run-length encoding (RLE) state machine implementation inside the `Bzip2BlockDecompressor.read()` method. When this method processes a maliciously crafted bzip2 stream, it fails to properly validate or limit iteration counts within its state machine logic. This oversight allows an attacker to trigger an unbounded looping condition that never reaches an exit state.
The root cause is a classic infinite loop vulnerability (CWE-835). The decompressor’s RLE state machine does not correctly handle certain malformed input patterns, causing the execution flow to cycle indefinitely without making progress. Because the `Bzip2Decoder` is typically integrated directly into the Netty pipeline, any incoming data stream that reaches this decoder will be processed on the event-loop thread—the very thread responsible for handling all I/O operations for a given connection. Once trapped, this thread consumes 100% CPU resources and ceases to respond to any new or existing events. For applications using a shared event-loop group, a single malicious payload can effectively freeze the entire service, rendering it unresponsive to legitimate traffic.
The attack vector is straightforward: an adversary only needs to send a single malformed bzip2 stream to a vulnerable Netty endpoint. The stream can be constructed using standard bzip2 encoding techniques that appear legitimate to basic validation checks, making it difficult to filter at the network perimeter. Given that Netty is often used in microservices, API gateways, and real-time data pipelines, the impact can cascade across dependent systems, leading to widespread service degradation or complete outage. The vulnerability is remotely exploitable without authentication or user interaction, amplifying its risk profile significantly. The fix, implemented in versions 4.1.136.Final and 4.2.16.Final, introduces proper bounds checking and loop termination logic within the `Bzip2BlockDecompressor` to ensure that all RLE state transitions eventually terminate, even when presented with malformed input.

DailyCVE Form:

Platform: Netty
Version: <4.1.136,<4.2.16
Vulnerability: Denial-of-Service
Severity: High
Date: 2026-07-29

Prediction: 2026-08-15

What Undercode Say:

Check Netty version in your project (Maven example)
mvn dependency:tree | grep netty-codec
Check for vulnerable versions
Vulnerable: io.netty:netty-codec-compression:[4.1.0.Final,4.1.136.Final)
Vulnerable: io.netty:netty-codec-compression:[4.2.0.Final,4.2.16.Final)
Example of vulnerable code location (conceptual)
Bzip2BlockDecompressor.read() - RLE state machine without exit guard
// Conceptual vulnerable snippet (for illustration)
// In Bzip2BlockDecompressor.read()
while (true) {
// RLE state transition without proper bounds
if (rleState == RLE_RUN) {
// Missing max run length check
// Can loop forever with malformed data
}
}

Exploit:

A remote attacker can craft a bzip2 stream with malformed RLE markers that cause the `Bzip2BlockDecompressor.read()` method to enter an infinite loop. This malformed stream can be delivered over any protocol that uses Netty’s compression codec pipeline (e.g., HTTP with Content-Encoding: bzip2, custom TCP-based protocols). The attacker does not need authentication or any special privileges. A single packet is sufficient to permanently block the event-loop thread handling that connection, leading to complete service unavailability if the thread pool is exhausted.

Protection:

  • Upgrade to Netty version 4.1.136.Final or 4.2.16.Final immediately.
  • If immediate upgrade is not possible, implement a custom `ChannelHandler` before the `Bzip2Decoder` to validate or limit the size of incoming compressed data.
  • Deploy rate limiting and connection throttling to reduce exposure to malicious streams.
  • Monitor event-loop thread CPU usage and set up alerts for sustained high utilization.

Impact:

  • Service Availability: Complete denial of service for the affected Netty server.
  • Resource Exhaustion: 100% CPU consumption on the trapped event-loop thread.
  • Cascading Failures: In shared event-loop groups, a single malicious connection can freeze all connections, affecting all dependent services.
  • Ease of Exploitation: Remotely exploitable with no authentication, low complexity, and minimal bandwidth.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top