漏洞概述 该漏洞涉及MQTT订阅权限在保留消息和QoS重放路径中未正确执行。具体表现为,当订阅者被拒绝访问某些主题时,这些主题的消息仍然会被错误地传递给订阅者。 影响范围 MQTT服务器:所有使用MQTT协议的服务器,特别是那些依赖于订阅权限控制的场景。 客户端应用:任何依赖MQTT进行消息传递的应用程序,尤其是那些对消息安全性有严格要求的应用。 修复方案 1. 代码修改: - 在 文件中,增加了权限检查逻辑,确保在序列化保留消息和QoS重放时,正确应用订阅权限。 - 具体修改包括在 和 函数中添加了权限检查代码。 2. 测试用例: - 在 文件中,增加了多个测试用例,验证订阅权限在保留消息和QoS重放路径中的正确执行。 - 测试用例覆盖了不同场景,包括订阅权限的拒绝、QoS重放和保留消息的处理。 POC代码 以下是修复后的关键代码片段: 以上代码片段展示了修复后的关键逻辑和测试用例,确保订阅权限在保留消息和QoS重放路径中正确执行。