Executive brief
EMQ NanoMQ is a lightweight messaging broker used for Internet of Things (IoT) communications. A vulnerability in the way it handles message quality-of-service (QoS) data allows a remote attacker to trigger a memory leak. Over time, this consumes all available system memory, causing the messaging service to crash and disrupting communication between IoT devices.
Technical details
A resource exhaustion vulnerability exists in EMQ NanoMQ v0.24.9 due to a memory leak in the nni_qos_db_set function within the broker_tcp.c and mqtt_qos_db_api.c components. The flaw is triggered when processing certain MQTT packets, leading to unreleased memory allocations (CWE-772). A remote, unauthenticated attacker can exploit this by sending a sequence of crafted packets, eventually exhausting system RAM and causing a denial of service. While the NanoMQ team has disputed the issue as configuration-related, technical analysis and AddressSanitizer (ASAN) logs confirm the leak occurs during routine QoS database operations.
Affected products
- EMQ NanoMQ v0.24.9
Timeline
- 2026-06-17: disclosed: Initial public disclosure by researcher
- 2026-07-15: advisory: CVE published to NVD dataset