CVE-2026-93575 in Netty
Zusammenfassung
von VulDB • 18.09.2026
### Zusammenfassung Die Korrektur von Netty für CVE-2026-44248 ist unvollständig. Der Decoder prüft zwar, ob die `Remaining Length` des MQTT-Pakets den Wert `maxBytesInMessage` überschreitet, validiert jedoch nicht die `Properties Length` im Verhältnis zur `Remaining Length`. Ein Angreifer kann das Größenlimit umgehen, indem er eine kleine `Remaining Length`, aber eine enorme `Properties Length` sendet. Dies zwingt Netty dazu, Millionen von Eigenschaften zu puffern und zu parsen, wodurch ein unberechtigter Remote-Angriffender übermäßigen Speicher- und CPU-Verbrauch auslösen kann, was zu einem OutOfMemoryError führt.
### Details In `io.netty.handler.codec.mqtt.MqttDecoder` liest die Hilfsmethode `decodeProperties()` den Wert `totalPropertiesLength` ein und versucht, diese Anzahl an Bytes zu parsen. Wenn der Puffer nicht über die vollständige Länge verfügt, wird eine `Signal`-Ausnahme ausgelöst. Der `catch`-Block innerhalb von `decode()` erzwingt das Limit `maxBytesInMessage` nur gegen `bytesRemainingBeforeVariableHeader` (die `Remaining Length` des Pakets).
Durch Senden eines `CONNECT`-Pakets mit einer kleinen `Remaining Length`, aber einer riesigen `Properties Length`, besteht die Größенprüfung. Der `ReplayingDecoder` puffert dann Daten aus dem Netzwerk, bis die enorme `Properties Length` erreicht ist, und parst Millionen von `UserProperty`-Objekten, wodurch CPU und Speicher erschöpft werden.
#
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.