FlashMQ 1.26.1 漏洞修复总结 漏洞概述 FlashMQ 1.26.1 是一个修复了多个安全问题的版本,主要涉及协议合规性、潜在崩溃风险以及线程安全问题。 影响范围 协议合规性:所有使用 FlashMQ 并启用了特定配置选项的 MQTT 客户端。 崩溃风险:在延迟保留消息设置中,如果未正确配置 和 ,可能会导致除零错误崩溃。 线程安全:多线程环境下可能存在竞态条件。 修复方案 安全修复 除零错误崩溃: - 配置选项 需要设置为非零值。 - 配置选项 需要设置为非零值。 常规修复 无效值检查: - 在 CONNACK 包中检查无效的 、 、 、 和 值。这些值如果是非二进制布尔值或零值,则被视为协议错误,客户端将被断开连接。此检查仅适用于桥接到其他服务器。 - 在 PUBREC 包中检查无效的原因代码。这修复了协议合规性,导致断开连接,但不改变任何行为。 QoS 配额: - 修复在接收带有未传输消息 ID 的 PUBACK、PUBREC 或 PUBCOMP 时增加 QoS 配额的问题。 属性长度检查: - 修复 MQTTTS 属性长度不超过属性子容器的问题。这修复了协议合规性,但之前没有完整性或安全漏洞。 线程安全: - 添加了各种线程安全检查以防止未来出现漏洞。 POC 代码 页面中未提供具体的 POC 代码或利用代码。