CVE-2025-56353CVE-2025-56353是tinyMQTT中的一个高危内存泄漏漏洞,CVSS评分达到7.5分。该漏洞存在于tinyMQTT的commit 6226ade15bd4f97be2d196352e64dd10937c1962(2024年2月18日)中,根源在于MQTT broker在处理订阅请求时未能正确验证或拒绝畸形(malformed)的UTF-8字符串。攻击者可以通过向MQTT broker发送包含畸形UTF-8编码的重复订阅请求来触发此漏洞。每次请求都会为畸形主题过滤器分配内存,但由于broker未能正确释放这些内存,导致堆内存持续增长,最终造成拒绝服务(DoS)条件。此漏洞无需认证即可利用,攻击复杂度低,对可用性造成严重影响。
tinyMQTT是一个轻量级的MQTT broker实现。在MQTT协议中,客户端可以订阅主题过滤器(Topic Filters)以接收感兴趣的消息。漏洞出现在主题过滤器的UTF-8验证逻辑中。当客户端发送包含畸形UTF-8字节序列的订阅请求时,broker的解析器未能正确检测并拒绝这些无效数据。具体来说,broker会为每个包含畸形UTF-8的主题过滤器分配内存,但在后续处理中未能正确释放这些内存分配。由于MQTT协议允许客户端建立持久连接并发送多个订阅请求,攻击者可以在单个连接中重复发送畸形订阅请求,或者建立多个连接同时发送,从而加速内存泄漏过程。这种内存泄漏是累积性的,在持续攻击下会导致服务器可用内存耗尽,引发系统崩溃或服务中断。