CVE-2026-61633 PUBLISHED

NanoMQ: Infinite Loop in UNSUBSCRIBE Decoder Leading to Remote DoS

Assigner: GitHub_M
Reserved: 10.07.2026 Published: 18.09.2026 Updated: 18.09.2026

NanoMQ is an MQTT broker. Prior to 0.24.14, the NanoMQ client function nni_mqtt_msg_decode_unsubscribe() in nng/src/supplemental/mqtt/mqtt_codec.c does not handle a failed read_uint16() while counting topics in a malformed UNSUBSCRIBE packet. A zero-length topic followed by trailing data can leave buf.curpos unchanged while topic_count continues to increase, allowing a malicious MQTT broker to hang a connecting MQTT 3.1.1 client, consume CPU and memory, and repeatedly deny service when automatic reconnection is enabled. The broker-side nmq_unsubinfo_decode path is not affected. This issue is fixed in version 0.24.14.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
CVSS Score: 2

Product Status

Vendor nanomq
Product nanomq
Versions
  • Version < 0.24.14 is affected

References

Problem Types

  • CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') CWE