CVE-2025-59947NanoMQ是一款面向IoT Edge和SDV(软件定义汽车)的轻量级消息代理总线。该漏洞存在于NanoMQ 0.24.4之前版本中,当MQTT PUBLISH数据包同时触发共享订阅(Shared Subscription)和普通订阅(Vanilla Subscription)时,会产生缓冲区溢出问题。攻击者可通过发送特制的MQTT PUBLISH包在受影响系统上执行任意代码,成功利用此漏洞可导致机密数据泄露、系统完整性破坏或服务完全中断。由于CVSS评分高达9.0,属于严重级别,建议受影响用户立即采取修复措施。该漏洞由GitHub安全团队发现并报告。
漏洞根源在于NanoMQ在处理MQTT协议PUBLISH包时,对共享订阅和普通订阅的并发处理逻辑存在缺陷。当同一个PUBLISH包同时匹配共享订阅主题过滤器和普通订阅主题过滤器时,代码在复制订阅信息到缓冲区时未进行充分的边界检查,导致缓冲区溢出。攻击者可通过构造特定主题路径的PUBLISH包,指定同时匹配共享订阅组和普通订阅的主题,实现栈或堆缓冲区溢出。在MQTT协议中,共享订阅使用$share/{group}/topic格式,普通订阅使用标准topic格式。攻击者利用这种协议特性,通过精心设计的主题树结构,触发双重匹配条件,造成缓冲区边界写入。成功利用可实现远程代码执行(RCE),对IoT边缘网关和车载系统构成严重威胁。