CVE-2026-73863: NanoMQ: Heap-Buffer-Overflow in `nmq_subinfo_decode()` During MQTT v5 SUBSCRIBE Parsing
NanoMQ is an MQTT broker. Prior to 0.24.14, NanoMQ's broker-side MQTT v5 nmqsubinfodecode() function in nng/src/sp/protocol/mqtt/mqttparser.c reuses lenofvarint from the outer Properties Length while parsing each SUBSCRIPTIONIDENTIFIER. A remote client can send a SUBSCRIBE packet with a multi-byte Properties Length and repeated subscription identifiers, causing getvarinteger() to begin at an incorrect offset and read beyond the heap message buffer. The flaw is reachable through the broker receive path and can crash the broker, while the separately reported topic-option off-by-one occurs later and is not this vulnerability. This issue is fixed in version 0.24.14.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
NanoMQto a version that resolves this vulnerability.Fixed in 0.24.14
Event History
Frequently Asked Questions
Which deployments are exposed?
NanoMQ broker deployments running versions before 0.24.14 are affected when they accept MQTT v5 SUBSCRIBE packets. The vulnerable code is reachable through the broker receive path.
What does an attacker need to send to trigger the issue?
A remote client must send a crafted MQTT v5 SUBSCRIBE packet containing a multi-byte Properties Length and repeated SUBSCRIPTION_IDENTIFIER values. This causes parsing to use an incorrect offset and read beyond the heap message buffer.
What is the practical impact of successful exploitation?
The malformed packet can cause an out-of-bounds heap read during parsing and crash the NanoMQ broker.
What version fixes the issue?
Upgrade NanoMQ to version 0.24.14, which includes the fix.