CVE-2025-56352tinyMQTT在处理CONNECT数据包时存在拒绝服务漏洞。当接收到CleanSession为0且Client ID长度为0的违规数据包时,代理程序返回错误码但未关闭TCP连接。重复此类尝试会导致文件描述符和内存资源耗尽,从而引发拒绝服务。
该漏洞源于tinyMQTT在解析MQTT CONNECT数据包时的逻辑缺陷。根据MQTT协议规范,当CleanSession标志位为0时,Client ID不能为零长度。tinyMQTT虽然检测到了此协议违规并正确返回了CONNACK 0x02(Identifier Rejected)响应,但代码中缺少显式的TCP连接关闭操作。由于服务器的连接清理逻辑依赖于正常的握手完成或客户端主动断开,这种异常路径导致连接处于未清理状态。攻击者可以通过脚本快速建立大量此类异常连接,耗尽操作系统的文件描述符限制和服务器内存,导致合法连接无法建立,从而实现拒绝服务攻击。