CVE-2026-33871 is a high-severity allocation of resources without limits or throttling vulnerability in io.netty:netty-codec-http2 (maven), affecting versions < 4.1.132.Final. It is fixed in 4.1.132.Final, 4.2.11.Final.
Summary A remote user can trigger a Denial of Service (DoS) against a Netty HTTP/2 server by sending a flood of CONTINUATION frames. The server's lack of a limit on the number of CONTINUATION frames, combined with a bypass of existing size-based mitigations using zero-byte frames, allows an user to cause excessive CPU consumption with minimal bandwidth, rendering the server unresponsive. Details The vulnerability exists in Netty's DefaultHttp2FrameReader. When an HTTP/2 HEADERS frame is received without the END_HEADERS flag, the server expects one or more subsequent CONTINUATION frames. However, the implementation does not enforce a limit on the count of these CONTINUATION frames. The key issue is located in codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java. The verifyContinuationFrame() method checks for stream association but fails to implement a frame count limit. Any user can exploit this by sending a stream of CONTINUATION frames with a zero-byte payload. While Netty has a maxHeaderListSize protection to limit the total size of headers, this check is never triggered by zero-byte frames. The logic effectively evaluates to maxHeaderListSize - 0 < currentSize, which will not trigger the limit until a non-zero byte is added. As a result, the server is forced to process an unlimited number of frames, consuming a CPU thread and monopolizing the connection. codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java verifyContinuationFrame() (lines 381-393), No frame count check: HeadersBlockBuilder.addFragment() (lines 695-723), Byte limit bypassed by 0-byte frames: When len=0: maxGoAway - 0 < readableBytes → 10240 < 1 → FALSE. The byte limit is never triggered. Impact This is a CPU-based Denial of Service (DoS). Any service using Netty's default HTTP/2 server implementation is impacted. An unauthenticated user can exhaust server CPU resources and block legitimate users, leading to service unavailability. The low bandwidth requirement for the attack makes it highly practical.
The application allocates resources such as memory, threads, or file descriptors based on untrusted input without enforcing a cap. Typical impact: resource exhaustion leading to denial of service.
maven
io.netty:netty-codec-http2 (< 4.1.132.Final)io.netty:netty-codec-http2 (>= 4.2.0.Alpha1, < 4.2.10.Final)io.netty:netty-codec-http2 → 4.1.132.Final (maven)io.netty:netty-codec-http2 → 4.2.11.Final (maven)Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.
Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.
Kodem's runtime-powered SCA identifies whether CVE-2026-33871 is reachable in your applications. Explore open-source security for your team.
See if CVE-2026-33871 is reachable in your applications. Get a demo
Upgrade the following packages to resolve this vulnerability:
io.netty:netty-codec-http2 to 4.1.132.Final or laterio.netty:netty-codec-http2 to 4.2.11.Final or laterKodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.
CVE-2026-33871 is a high-severity allocation of resources without limits or throttling vulnerability in io.netty:netty-codec-http2 (maven), affecting versions < 4.1.132.Final. It is fixed in 4.1.132.Final, 4.2.11.Final. The application allocates resources such as memory, threads, or file descriptors based on untrusted input without enforcing a cap.
io.netty:netty-codec-http2 (maven) versions < 4.1.132.Final is affected.
Yes. CVE-2026-33871 is fixed in 4.1.132.Final, 4.2.11.Final. Upgrade to this version or later.
Whether CVE-2026-33871 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
io.netty:netty-codec-http2 to 4.1.132.Final or laterio.netty:netty-codec-http2 to 4.2.11.Final or later