Description
NanoMQ MQTT Broker (NanoMQ) is an all-around Edge Messaging Platform. Prior to version 0.24.10, in NanoMQ's webhook_inproc.c, the hook_work_cb() function processes nng messages by parsing the message body with cJSON_Parse(body). The body is obtained from nng_msg_body(msg), which is a binary buffer without a guaranteed null terminator. This leads to an out-of-bounds read (OOB read) as cJSON_Parse reads until it finds a \0, potentially accessing memory beyond the allocated buffer (e.g., nng_msg metadata or adjacent heap/stack). The issue is often masked by nng's allocation padding (extra 32 bytes of zeros for non-power-of-two sizes <1024 or non-aligned). The overflow is reliably triggered when the JSON payload length is a power-of-two >=1024 (no padding added). This issue has been patched in version 0.24.10.
Affected products
emqx: nanomq
References3
- github.com/nanomq/nanomq/security/advisories/GHSA-8p57-jxj9-3qq3 ExploitMitigationVendor Advisory
- github.com/nanomq/nanomq/commit/9499a4b2c47998a6aadb69238c18b9e… Patch
- github.com/nanomq/nanomq/releases/tag/0.24.10 ProductRelease Notes
Metrics
- CVSS 3.1
-
8.2
HIGH
Score source: NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H - EPSS — exploit probability
- 0% percentile: 32 · as of 12 November 2026
- CWE
- CWE-125CWE-457
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.