Advisory · CVE-2026-100656
Netty HttpServerCodec can be drowned by a single pipelined connection
Netty's HttpServerCodec tracks the HTTP method of each still-unanswered pipelined request in an unbounded queue. A remote, unauthenticated attacker who pipelines HTTP/1.1 requests on one connection while withholding reads can grow that queue without bound, exhausting heap and denying service. Fixed in 4.1.138.Final and 4.2.18.Final.
- Vendor
- Netty
- Product
- Netty
- Identifier / CWE
- CVE-2026-100656
CWE-770 - Action timing
- Immediate
Explain it like I’m five
The server keeps a to-do list of incoming requests, but the list has no bottom. An attacker keeps adding items without ever letting the server cross any off, until the list itself fills the whole room.
- 01Pipelined requests
The attacker opens one connection and pipelines many HTTP/1.1 requests.
- 02Withheld reads
The attacker never reads the responses, so the server cannot flush and free state.
- 03Unbounded queue
Each unanswered request's HTTP method is appended to methodOverflowQueue with no size limit.
- 04Heap exhaustion
Heap grows without bound until the JVM throws OutOfMemoryError and the service dies.
What happened
Netty’s HttpServerCodec appends the HTTP method of every still-unanswered pipelined request to an unbounded methodOverflowQueue, and the queue is drained only when a flush sends the response (CVE-2026-100656, CVSS 8.7). A remote, unauthenticated attacker can pipeline HTTP/1.1 requests on a single connection and never read responses, so each send appends without any flush draining the queue, growing it without bound until the JVM throws OutOfMemoryError. The attack requires only TCP reachability to an HTTP/1.1 endpoint, no authentication and no special payloads. The issue is fixed in Netty 4.1.138.Final and 4.2.18.Final.
What to do
- Upgrade Netty to 4.1.138.Final or 4.2.18.Final (matching your 4.1 or 4.2 branch).
- Review dependency trees (transitive Netty use is common via frameworks) and upgrade where the HTTP codec is on the path.
- Watch heap metrics for unexplained growth on HTTP endpoints; this attack leaves little log evidence beyond eventual OOM.
- Consider connection-level request caps and aggressive read timeouts as defense in depth.
Management note
One connection, no credentials, no payload: this is about as cheap a denial-of-service as it gets against any Java HTTP stack built on Netty. Inventory Netty versions across services rather than assuming only your edge proxies matter.