漏洞概述 该漏洞涉及MQTT协议中的部分CONNECT数据包,这些数据包的大小超过了客户端的最大负载限制。在缓冲不完整数据包之前,服务器会拒绝这些数据包。这可以防止未认证客户端通过发送大量CONNECT数据包来耗尽服务器的预认证内存。 影响范围 MQTT服务器:特别是那些使用NATS服务器的MQTT服务。 未认证客户端:未认证的客户端可以通过发送大尺寸的CONNECT数据包来尝试耗尽服务器的内存资源。 修复方案 1. 代码修改: - 在 文件中,对 函数进行了修改,增加了最大负载长度的检查。 - 在 文件中,增加了相应的测试用例来验证修复的有效性。 2. 具体代码修改: - : - : 总结 该修复通过增加对数据包长度的检查,防止了未认证客户端通过发送大尺寸的CONNECT数据包来耗尽服务器的内存资源。测试用例确保了修复的有效性和稳定性。