漏洞概述

在 tinyMQTT 项目 commit 6226ade15bd4f97be2d196352e64dd10937c1962(2024年2月18日)版本中,存在一个内存泄漏漏洞。该漏洞源于 MQTT 代理(broker)未能正确验证或拒绝包含畸形 UTF-8 字符串的主题过滤器(topic filter)。攻击者可通过重复发送带有超大或无效主题过滤器的订阅请求,导致服务端持续分配内存但未释放,最终引发内存耗尽和拒绝服务(DoS)。

漏洞详情

  • CVE 编号:CVE-2025-56353
  • 漏洞类型:内存泄漏(Memory Leak)
  • CVSS 评分:暂无(官方尚未发布评分)
  • 影响版本:tinyMQTT commit 6226ade15bd4f97be2d196352e64dd10937c1962(2024-02-18)及此前版本

影响范围

所有使用受影响版本 tinyMQTT 作为 MQTT 代理的系统均可能受到此漏洞影响,尤其是在暴露于不可信网络环境(如公网)时,更容易遭受恶意订阅请求攻击。

风险分析

攻击者可利用该漏洞通过构造大量含无效 UTF-8 主题过滤器的订阅请求,持续消耗 broker 的堆内存。由于内存未被释放,长时间攻击将导致服务内存耗尽,进而引发服务崩溃或拒绝服务,影响系统可用性。该漏洞虽不直接导致远程代码执行或信息泄露,但对服务稳定性构成严重威胁。

修复建议

  • 建议开发者关注 tinyMQTT 项目官方仓库,及时应用包含 UTF-8 验证与内存管理修复的更新版本。
  • 在补丁发布前,可考虑在网络边界部署访问控制策略,限制非授权客户端的订阅行为,或对订阅请求的主题长度与格式进行前置过滤,以缓解攻击风险。

参考链接