~ / search / GHSA-cc37-9q2j-3hfv

GHSA-cc37-9q2j-3hfv

Netty: HAProxy SSL TLV parsing leaks retained slice on invalid TLV length

Source: GitHub Advisory Database (reviewed) High CVE-2026-44893

Packages

EcosystemPackageAffectedFixed in
Maven io.netty:netty-codec-haproxy >= 4.2.0.Final, < 4.2.15.Final 4.2.15.Final
Maven io.netty:netty-codec-haproxy < 4.1.135.Final 4.1.135.Final

Details

As written in the advisory (Markdown source, shown as plain text).

When decoding a PP2_TYPE_SSL TLV, HAProxyMessage.readNextTLV() first calls `header.retainedSlice(header.readerIndex(), length)` and only then reads the 1-byte client field and 4-byte verify field. If the attacker sets the TLV length below 5, the subsequent readByte/readInt throws IndexOutOfBoundsException. HAProxyMessageDecoder only catches HAProxyProtocolException around this call, so the IOOBE propagates and the retained slice on the pooled cumulation buffer is never released.

References

External links from the advisory. They lead to third-party sites.