CVE-2025-62723FlashMQ是一款专为多CPU环境设计的MQTT代理/服务器。漏洞存在于1.23.2之前的所有版本,源于会话管理机制存在缺陷。任何经过身份验证的用户都可以创建任意数量的会话,这些会话会收集QoS(服务质量)消息。当消息未被发送到客户端时,即使会话最终过期,这些消息也不会被释放。随着时间推移,积累的消息会持续占用服务器内存和存储资源,最终导致资源耗尽,使得服务器无法处理新的连接和消息传递。该漏洞利用门槛较低,攻击者只需拥有普通用户权限即可发起攻击,无需特殊权限或用户交互。攻击成功可能导致MQTT服务可用性下降,影响依赖该broker的所有IoT设备和应用系统的正常通信。
漏洞根源在于FlashMQ的QoS消息生命周期管理与会话生命周期管理之间存在不同步问题。当客户端连接并创建会话时,broker会为该会话分配资源用于存储待投递的QoS消息。正常情况下,消息应被投递到订阅客户端或由客户端明确删除。但当会话过期时,如果消息尚未投递,系统未能正确释放这些消息占用的资源。攻击者利用此缺陷可执行以下操作:1) 使用有效凭证连接MQTT broker;2) 创建多个会话并为每个会话设置较长的会话过期时间;3) 向这些会话的保留主题或特定主题发送QoS 1或QoS 2消息;4) 不消费这些消息,任由会话过期。由于消息引用计数未正确清理,即使会话已过期,消息仍保留在内存中。重复此过程可耗尽服务器资源,导致拒绝服务。CVSS向量显示攻击复杂度低(AC:L),所需权限为低权限(PR:L),可用性影响为低(A:L)。