Summary
CVE-2026-100656 is a denial-of-service vulnerability in Netty’s HttpServerCodec (io.netty:netty-codec-http), caused by unbounded per-connection queue growth when handling pipelined HTTP/1.1 requests. A remote, unauthenticated attacker can exploit this to force uncontrolled heap memory growth on the target server, exhausting available memory and disrupting service availability. The flaw carries a CVSS score of 8.7 (High).
Technical details
- Root cause:
HttpServerCodectracks the HTTP method of each still-unanswered pipelined request on a connection. The first 32 pending entries are bit-packed into a singlelong, but any additional entries spill intomethodOverflowQueue, a plainArrayDeque<Byte>with no upper bound or capacity restriction. - Trigger conditions: An attacker opens a TCP connection to a Netty-based HTTP/1.1 server, pipelines a large number of requests on that single connection, and withholds reads on their own end so that responses are never flushed back. This allows the decoder to keep racing ahead of the application, continuously appending entries to the overflow queue.
- Attack vector: Network-based, requires no authentication and no user interaction — a single TCP connection is sufficient.
- Impact: Uncontrolled heap memory growth, leading to memory exhaustion and denial of service for the affected application/server. This mirrors an earlier, already-patched defect in the related
HttpContentEncoderclass (which received amaxPipelineDepthlimit);HttpServerCodec, being a more foundational and widely used class in HTTP/1.1 servers, had not received the equivalent protection until this fix.
Affected software
io.netty:netty-codec-httpversions 4.2.0.Final through 4.2.17.Finalio.netty:netty-codec-httpversions up to and including 4.1.137.Final (4.1.x branch)
Severity
- CVSS Score: 8.7 (High)
- Weakness: CWE-770 (Allocation of Resources Without Limits or Throttling)
Mitigation and recommended actions
- Immediate: Upgrade to the patched releases:
4.2.18.Finalfor the 4.2.x branch4.1.138.Finalfor the 4.1.x branch
- If immediate patching is not possible:
- Enforce connection-level limits such as maximum pipelined requests per connection, aggressive read/idle timeouts, and per-connection memory/resource caps at the load balancer or reverse proxy tier to reduce exposure to slow-read/pipelining abuse.
- Monitor for connections exhibiting large numbers of pipelined requests combined with stalled or withheld reads, and terminate anomalous connections proactively.
- Apply general resource-exhaustion protections (connection limits, memory watchdogs, autoscaling/restart policies) as a compensating control until the upgrade is applied.

