Executive brief
NanoMQ is a lightweight message broker used to facilitate communication between Internet of Things (IoT) devices. A vulnerability in its management interface allows an authenticated user to crash the broker by sending a specially formatted request. If exploited, this would cause a complete service outage, disconnecting all connected devices and disrupting real-time data operations until the service is manually restarted.
Technical details
A NULL pointer dereference exists in the `properties_parse()` function within `rest_api.c` of NanoMQ. The vulnerability is triggered when the REST API endpoint `/api/v4/mqtt/publish` receives a JSON payload where the `user_properties` field is formatted as a JSON array rather than the expected JSON object. The code uses `cJSON_ArrayForEach` to iterate over the elements but fails to validate the JSON type; since array elements in cJSON do not have key names, `item->string` is NULL. A subsequent call to `strlen(item->string)` results in a segmentation fault (SIGSEGV), crashing the broker process. This attack requires network access and valid HTTP Basic Authentication credentials. The issue is resolved in version 0.24.14.
Affected products
- NanoMQ NanoMQ <= 0.24.11
Timeline
- 2026-07-08: advisory: GitHub Security Advisory published
- 2026-07-20: disclosed: NVD publication date