The vulnerability is a Denial of Service (DoS) caused by an infinite loop in the BinaryHttpParser component of netty-incubator-codec-ohttp. The root cause lies in the readFieldSection method, which is responsible for parsing the field section of a Binary HTTP message. The analysis of the fixing commit 89d6cfc67e034a92e6eef9ccb9829b6e358a91ea confirms the flaw. The vulnerable version of the code used a while (fieldSectionLength != 0) loop condition. An attacker could craft a malicious message where the actual length of a field line is greater than the declared fieldSectionLength. This would cause fieldSectionLength to become negative, but not zero, making the loop condition != 0 always true. Furthermore, if a field line was truncated, the internal readFieldLine method could return without consuming any bytes, leading to a tight busy-spin loop, consuming 100% of a CPU core.
The patch addresses this by adding two crucial checks inside the loop. First, it throws a CorruptedFrameException if readFieldLine makes zero progress (read <= 0). Second, it throws an exception if the number of bytes read (read) is greater than the remaining fieldSectionLength, preventing the counter from becoming negative. The vulnerable functions identified are readFieldSection (containing the flawed logic) and the functions in its call stack (readRequestHead, parse, and decodeChunk) which would appear in a profiler during exploitation, as confirmed by the stack trace in the vulnerability report.