GHSA-jfg9-48mv-9qgx
Netty MQTT: Resource exhaustion in MqttDecoder
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Maven | io.netty:netty-codec-mqtt | >= 4.2.0.Alpha1, < 4.2.13.Final | 4.2.13.Final |
| Maven | io.netty:netty-codec-mqtt | < 4.1.133.Final | 4.1.133.Final |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
The MQTT 5 header Properties section is parsed and buffered _before_ any message size limit is applied.
Specifically, in `MqttDecoder`, the `decodeVariableHeader()` method is called before the `bytesRemainingBeforeVariableHeader > maxBytesInMessage` check. The `decodeVariableHeader()` can call other methods which will call `decodeProperties()`. Effectively, Netty does not apply any limits to the size of the properties being decoded.
Additionally, because `MqttDecoder` extends `ReplayingDecoder`, Netty will repeatedly re-parse the enormous Properties sections and buffer the bytes in memory, until the entire thing parses to completion.
This can cause high resource usage in both CPU and memory.
### Resources
`ANT-2026-09608`
https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901027
References
External links from the advisory. They lead to third-party sites.