Description
NanoMQ MQTT Broker (NanoMQ) is an all-around Edge Messaging Platform. In versions 0.24.10 and below, when NanoMQ handles high-concurrency reconnect traffic using a reconnect-collision payload, the broker can crash due to a NULL pointer dereference during MQTT session resumption for clean_start=0 clients. The transport's p_peer callback (tcptran_pipe_peer()) iterates cpipe->subinfol while copying session metadata from the cached old pipe to the new reconnecting pipe, without checking whether the pointer is NULL. Under a reconnect race, cpipe->subinfol can be freed and set to NULL before session restore invokes this function, resulting in a remote unauthenticated Denial-of-Service (process crash) condition. This issue has been fixed in version 0.24.11.
Problem types
CWE-476: NULL Pointer Dereference
Product status
References
github.com/...nanomq/security/advisories/GHSA-q36f-83mh-pcv2
github.com/nanomq/nanomq/issues/2241
github.com/...nanomq/security/advisories/GHSA-q36f-83mh-pcv2
github.com/nanomq/nanomq/issues/2241
github.com/...ommit/522ec62e29e60d1122f2aedaa6e702dcf089f7bb
github.com/nanomq/nanomq/releases/tag/0.24.11