CVE-2026-44248Netty是一个广泛使用的异步事件驱动网络应用框架。在4.2.13.Final和4.1.133.Final版本之前,其MQTT解码器存在安全缺陷。在解析MQTT 5消息头的Properties部分时,系统未在缓冲数据前应用消息大小限制。由于MqttDecoder继承自ReplayingDecoder,这导致Netty会反复解析并缓冲超大的Properties部分,直到解析完成。攻击者可利用此缺陷消耗服务端大量CPU和内存资源,导致服务拒绝响应。
该漏洞的根本原因在于Netty处理MQTT 5协议时的解析逻辑存在严重缺陷。在受影响的版本中,MqttDecoder类的decode方法在处理消息头时,首先会调用decodeVariableHeader()方法。该方法内部会进一步调用decodeProperties()来解析MQTT 5协议特有的Properties字段。然而,至关重要的是,用于限制消息大小的检查代码(即bytesRemainingBeforeVariableHeader > maxBytesInMessage)却被放置在decodeVariableHeader()调用之后执行。这意味着,在解析Properties时,系统完全处于“无限制”状态。由于MqttDecoder继承自ReplayingDecoder,当数据流中的Properties字段被恶意构造得非常巨大时,解码器会不断尝试在内存中缓冲数据并重新解析,直到满足解析条件或资源耗尽。攻击者只需发送一个包含超长Properties字段的恶意MQTT 5数据包,即可导致服务器CPU满负荷运转及内存溢出,从而实现拒绝服务攻击。