{"id":"CVE-2026-61633","summary":"NanoMQ: Infinite Loop in UNSUBSCRIBE Decoder Leading to Remote DoS","details":"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.","aliases":["GHSA-m7mp-rr3v-hmhr"],"modified":"2026-09-20T14:24:20.158989Z","published":"2026-09-18T16:18:57.029Z","database_specific":{"cwe_ids":["CWE-835"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61633.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/nanomq/nanomq/releases/tag/0.24.14"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61633.json"},{"type":"ADVISORY","url":"https://github.com/nanomq/nanomq/security/advisories/GHSA-m7mp-rr3v-hmhr"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-61633"},{"type":"FIX","url":"https://github.com/nanomq/NanoNNG/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d"},{"type":"FIX","url":"https://github.com/nanomq/NanoNNG/pull/1518"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/nanomq/nanomq","events":[{"introduced":"0"},{"fixed":"16bdb38921e7bbeab887cf229c2eb145889dfa88"}],"database_specific":{"source":"REFERENCES"}},{"type":"GIT","repo":"https://github.com/nanomq/nanonng","events":[{"introduced":"0"},{"fixed":"fa8d859bb39841e46cfc6cce280d242bd782ad3d"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"0.24.14"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["0.24.13","0.24.12","0.24.11","0.24.10","0.24.9","0.24.8","0.24.7","0.24.6","0.24.5","0.24.4","0.24.3-5","0.24.3","0.24.2","0.24.1","0.24.0","0.23.10","0.23.9","0.23.8","0.23.7-11","0.23.7","0.23.6","0.23.5","0.23.4","0.23.3","0.23.2","0.23.1","0.23.0","0.22.10","0.22.8","0.22.7","0.22.6","0.22.2","0.22.3","0.22.1","0.22.0","0.21.10","0.21.9","0.21.8","0.21.7","0.21.6","0.21.5","0.21.2","0.21.1","0.21","0.20.8","0.20.6","0.20.5","0.20.0","0.19.5","0.19.1","0.19.0","0.18.2","0.18.1","0.17.8","0.17.5","0.17.2","0.16.5","0.16.3","0.16.2","0.16.0","0.15.5","0.15.3","0.15.2","0.15.1","0.15.0","0.14.8","0.14.5","0.12.1","0.14.1","0.14.0","0.13.8","0.13.6","0.13.0","0.12.5","0.12.2","0.12.0","0.11.82","0.11.8","0.11.5","0.11.3","0.11.2","0.11.0","0.10.8","0.10.5","0.10.1","0.9.7","0.9.5","0.9.2","0.9.0","0.8.6log","0.8.5","0.8.3","0.8.0","0.7.9","0.7.8","0.7.5","0.7.5rc","0.7.4rc","0.7.4","0.7.3","0.7.2","0.6.8","0.7.0","0.6.7rc","0.6.4","0.6.3","0.6.2","0.6.0","0.5.9","0.5.8","0.5.5","0.5.2","0.5.0","0.4.8","0.4.5","0.4.3","0.4.2","0.4.1","0.4.0","0.3.8","0.3.5","0.3.4","0.3.3","0.3.2","0.3.0","0.2.5","0.2.2","0.2.1","0.2.0","0.1.0","0.0.3","0.0.2","0.0.1","0.24.11-sdv","0.22.4","0.17.0","0.13.5","0.13"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-61633.json","vanir_signatures_modified":"2026-09-20T14:24:20Z","vanir_signatures":[{"signature_version":"v1","source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c","function":"property_parse"},"deprecated":false,"digest":{"length":2560,"function_hash":"88348002674658074348822203479023842368"},"id":"CVE-2026-61633-143cbea7","signature_type":"Function"},{"signature_version":"v1","source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c"},"deprecated":false,"digest":{"line_hashes":["134183472054008959164910560082872290903","135218529836465988249126530173685715886","312632104218168491738907891875122949290","308436005444356819026494529717080274974","106553580121658145421047228981759758797","135218529836465988249126530173685715886","312632104218168491738907891875122949290","308436005444356819026494529717080274974","134183472054008959164910560082872290903","135218529836465988249126530173685715886","239740223537228919441959631622390010066","38279030566472781949455962562476214335","134183472054008959164910560082872290903","135218529836465988249126530173685715886","239740223537228919441959631622390010066","38279030566472781949455962562476214335","274319222470889704285877280499113142434","225383562553691437300533446637280837722","10516642643065539460561719685955809564","16440798690770997445309382729206171889"],"threshold":0.9},"id":"CVE-2026-61633-325c82b6","signature_type":"Line"},{"signature_version":"v1","source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c","function":"nni_mqtt_msg_decode_unsubscribe"},"deprecated":false,"digest":{"function_hash":"70070237621829764289480800297382599647","length":1221},"id":"CVE-2026-61633-4b861460","signature_type":"Function"},{"digest":{"function_hash":"111289307452485218761891371005179732598","length":1160},"id":"CVE-2026-61633-4de9126b","signature_type":"Function","signature_version":"v1","source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c","function":"nni_mqtt_msg_decode_subscribe"},"deprecated":false},{"source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c","function":"nni_mqttv5_msg_decode_subscribe"},"deprecated":false,"digest":{"function_hash":"66300308770052318231294513144508137013","length":1578},"id":"CVE-2026-61633-65c87e24","signature_type":"Function","signature_version":"v1"},{"signature_version":"v1","source":"https://github.com/nanomq/nanonng/commit/fa8d859bb39841e46cfc6cce280d242bd782ad3d","target":{"file":"src/supplemental/mqtt/mqtt_codec.c","function":"nni_mqttv5_msg_decode_unsubscribe"},"deprecated":false,"digest":{"length":1408,"function_hash":"187575605547041575479112779187467724183"},"id":"CVE-2026-61633-df2dad94","signature_type":"Function"}]}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L"}]}