
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-63202 is an unauthenticated CPU-exhaustion denial-of-service vulnerability in the BinaryHttpParser component of the netty-incubator-codec-ohttp library (Maven artifact io.netty.incubator:netty-incubator-codec-bhttp). The flaw causes an infinite loop in the field-section decoding logic, allowing a remote attacker to permanently pin Netty event-loop threads at 100% CPU with a single ~17-byte crafted Binary HTTP message. All versions up to and including 0.0.22.Final are affected; the vulnerability has existed since the parser was introduced. It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).
The root cause is a control-flow termination defect in BinaryHttpParser.java lines 619–626, classified as CWE-835 (Loop with Unreachable Exit Condition) with a secondary CWE-400 (Uncontrolled Resource Consumption). The loop condition while (fieldSectionLength != 0) instead of > 0 allows the counter to go negative when a field line consumes more bytes than the attacker-declared field-section length, making the exit condition permanently unreachable. Additionally, readFieldLine() can return null and consume zero bytes on a truncated/over-long field line, causing zero-progress iterations that spin indefinitely. Two assert statements (lines 622 and 624) were the only intended guards, but Java assertions are disabled by default in production JVMs, rendering them no-ops. The vulnerability is reachable via the OHTTP codec path: OHttpServerCodec.decode → OHttpRequestResponseContext.parse → ContentDecoder.decodeChunk → BinaryHttpParser.parse, meaning attacker-controlled plaintext (decrypted from a valid HPKE-encapsulated OHTTP request) reaches the vulnerable loop with no intervening application-level guards (GitHub Advisory, Netty Security Advisory).
Successful exploitation results in a complete, persistent denial of service against the OHTTP gateway or client. Each malicious request permanently consumes one Netty event-loop thread at 100% CPU; since Netty event-loop groups have a small fixed thread count (default 2× CPU cores), a handful of concurrent requests exhausts all I/O threads, after which the service accepts no further connections and serves no traffic until the process is restarted. There is no confidentiality or integrity impact — the attack is purely availability-focused and requires no authentication or prior access (GitHub Advisory).
A proof-of-concept has been publicly documented in the advisory, consisting of a 17-byte crafted Binary HTTP message (0001670168016101700101610162016301) that triggers the infinite loop when encapsulated in a valid OHTTP request using the gateway's publicly available HPKE key configuration. The PoC was empirically confirmed to cause a hang with ~100% CPU consumption on one core for the duration of the test. No authentication or special privileges are required. There is no current evidence of in-the-wild exploitation, and the CVE status remains "Reserved" as of the advisory publication date. CISA KEV catalog status and EPSS score are not yet available (GitHub Advisory, Netty Security Advisory).
netty-incubator-codec-ohttp version ≤ 0.0.22.Final. Retrieve the gateway's publicly advertised HPKE key configuration (standard OHTTP behavior per RFC 9458).00 01 67 01 68 01 61 01 70 01 01 61 01 62 01 63 01.BinaryHttpParser.parse().readFieldSection(), where the while (fieldSectionLength != 0) loop spins indefinitely — either because fieldSectionLength goes negative (never equals zero) or because readFieldLine() returns null with zero progress. One Netty event-loop thread is pinned at 100% CPU permanently.nioEventLoopGroup-*) sustained at 100% CPU with no corresponding increase in throughput or request completion.io.netty.incubator.codec.bhttp.BinaryHttpParser.readFieldSection(BinaryHttpParser.java:626) → readRequestHead(BinaryHttpParser.java:451) → parse(BinaryHttpParser.java:190).RUNNABLE (busy spin, not blocked/waiting), with CPU time approximately equal to wall-clock time (GitHub Advisory).Upgrade the Maven dependency io.netty.incubator:netty-incubator-codec-bhttp (and the parent netty-incubator-codec-ohttp) to version 0.0.23.Final, which contains the fix (Netty Release). The fix changes the loop condition from != 0 to > 0 and promotes the assert-based guards to explicit CorruptedFrameException throws on null/zero-progress returns from readFieldLine(). If immediate upgrade is not possible, consider placing a rate-limiting or connection-limiting reverse proxy in front of the OHTTP gateway to reduce the blast radius, though this does not eliminate the vulnerability. Running the JVM with -ea (assertions enabled) would cause the parser to throw AssertionError instead of spinning, but this is not recommended for production due to performance and stability implications (GitHub Advisory).
The advisory was originally published by maintainer normanmaurer to the netty/netty-incubator-codec-ohttp repository on July 18, 2026, and subsequently published to the GitHub Advisory Database on August 20, 2026. The reporter is credited as "Pig-Tail Reporter." No significant broader media coverage or notable public researcher commentary beyond the advisory itself has been identified at this time (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."