Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessControl or impersonate target MQTT broker
-
DeliveryAccept inbound NanoMQ MQTTv5 client connection
-
ExploitSend 35-byte crafted CONNECT packet with will_prop set and prop NULL
-
ExecutionTrigger NULL dereference in nni_mqttv5_msg_decode_connect() at mqtt_codec.c:1863
-
PersistSIGSEGV terminates client process
-
ImpactAuto-reconnect loop sustains persistent DoS
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to control or impersonate the MQTT broker to which the NanoMQ MQTTv5 client is configured to connect. The malicious broker must send a crafted MQTTv5 CONNECT packet where will properties are present (will_prop != NULL) but connect-level properties are absent (prop == NULL) - this specific property combination is the necessary and sufficient trigger for the NULL dereference in nni_mqttv5_msg_decode_connect(). Both nanomq_cli and NanoMQ bridge mode are vulnerable through the same shared receive path. Exploitation is bounded by broker-position access: the attacker must operate the target broker endpoint, execute a man-in-the-middle attack on the MQTT connection, or (requiring admin access to the victim host) reconfigure the NanoMQ client to connect to a malicious broker. No authentication on the victim NanoMQ system is required once broker positioning is achieved. Auto-reconnect configuration on the client amplifies a transient crash into indefinite service disruption. |
| Impact | The official CVSS 3.1 base score of 2.6 (AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L) reflects a tightly constrained attack: high complexity, low privileges required, user interaction needed, and only low availability impact. The raw score understates operational risk in bridge-mode deployments: if auto-reconnect is enabled, a single malicious broker packet triggers an infinite crash-reconnect loop, producing persistent process-level DoS with no additional attacker effort. No EPSS score was provided in the input data, so exploitation probability cannot be quantified numerically. KEV status is not confirmed - no active exploitation is cited in CISA KEV. The described 35-byte trigger payload is structurally simple, lowering practical exploitation complexity for any attacker already holding broker-position access. Confidentiality and integrity metrics are both N, confirming this is a pure availability attack with no data exposure. The primary limiting factor is broker positioning: the attacker must control or impersonate the MQTT endpoint the NanoMQ client is configured to reach, which restricts opportunistic mass exploitation. |
| Exploit ScenarioDerived | An attacker who operates or impersonates the MQTT broker to which a NanoMQ instance is configured to connect - via DNS hijacking, BGP poisoning, or a rogue broker in a test or staging environment - sends a single 35-byte crafted MQTTv5 CONNECT packet containing will properties but no connect-level properties. The NanoMQ client process immediately dereferences the NULL prop pointer, receives SIGSEGV, and terminates. In bridge mode with auto-reconnect enabled, the client repeatedly reconnects and crashes in an infinite loop, sustaining process-level denial of service without any further attacker interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 20, 2026
NULL pointer dereference in NanoMQ 0.24.11 and earlier allows a malicious MQTT broker to remotely crash any connecting NanoMQ MQTTv5 client - including bridge mode - with a single 35-byte crafted packet, triggering SIGSEGV and denial of service. The bug in mqtt_codec.c:1863 arises when a CONNECT packet carries will properties (will_prop != NULL) but no connect-level properties (prop == NULL); the code erroneously dereferences prop->next, reading from virtual address 0x38 (NULL plus struct field offset). No CISA KEV listing or public exploit is confirmed at time of analysis, but the minimal 35-byte trigger and auto-reconnect behavior in bridge mode can convert a single crash into a persistent DoS loop.
RemediationAI
The primary fix is to upgrade NanoMQ to a version beyond 0.24.11 once a patched release is published; the exact fixed version is not stated in available data and should be confirmed via the vendor advisory at https://github.com/nanomq/nanomq/security/advisories/GHSA-52qr-3v49-wmx6 before deploying. As an immediate compensating control, restrict NanoMQ clients and bridge-mode instances to connect only to verified, trusted MQTT brokers by enforcing TLS mutual authentication with certificate pinning, preventing redirection to attacker-controlled brokers - note this requires PKI infrastructure and may complicate dynamic broker discovery. If bridge mode is not operationally required, disable it to eliminate the automated reconnect attack path that converts a single crash into persistent DoS. Disabling auto-reconnect in client configurations reduces the persistence of the DoS even when the underlying null-dereference is triggered, at the cost of requiring manual service recovery after a crash event.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
NanoMQ is an MQTT broker and client suite targeting edge computing and IoT deployments. The vulnerable function nni_mqttv5_msg_decode_connect() in mqtt_codec.c decodes MQTTv5 CONNECT packets and iterates over packet properties. CWE-476 (NULL Pointer Dereference) applies directly: the property-iteration loop uses the pointer variable prop (connect-level properties) rather than will_prop (will-message properties) when traversing will properties. If an incoming CONNECT packet legitimately includes will properties (will_prop != NULL) while omitting connect-level properties (prop == NULL), the code attempts to read prop->next, dereferencing a NULL pointer offset by the next field's struct offset (0x38), causing an immediate SIGSEGV. Both the nanomq_cli command-line tool and NanoMQ bridge mode consume the same shared receive path in mqtt_client.c, making both components identically vulnerable. Affected CPE: cpe:2.3:a:nanomq:nanomq:*:*:*:*:*:*:*:* covering all variants through version 0.24.11.
Know when Nanomq gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L
PR:N because no privileges on the victim system are required; attacker needs only to operate a reachable broker. UI:R because the client must initiate connection to the malicious broker.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
In nanomq versions 0.24.11 and earlier, a NULL pointer dereference in nni_mqttv5_msg_decode_connect() allows a malicious MQTT broker to crash any connecting NanoMQ MQTTv5 client (including bridge mode) with a single packet, causing remote denial of service via SIGSEGV. In nni_mqttv5_msg_decode_connect() (mqtt_codec.c:1863), the code iterates over CONNECT properties using variable prop when it should use will_prop. When a CONNECT packet has no connect-level properties (prop == NULL) but has will properties (will_prop != NULL), dereferencing prop->next causes SIGSEGV at address 0x38 (NULL + offsetof(property, next)).
This affects both nanomq_cli and NanoMQ bridge mode (Core component), as both use the same mqtt_client.c receive path. This can lead to remote DoS if a malicious MQTT broker can crash the client process with a single 35-byte packet and persistent DoS if auto-reconnect causes infinite crash loop.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
NanoMQ 0.17.5 has a one-byte heap-based buffer over-read in the conn_handler function of mqtt_parser.c when it processes
CVE-2024-42646 is a segmentation fault vulnerability in NanoMQ v0.21.10 that allows unauthenticated remote attackers to
A data race in NanoMQ MQTT Broker versions prior to 0.24.2 can free subscription-info list memory while another thread s
Null Pointer Dereference vulnerability in topic_filtern function in mqtt_parser.c in NanoMQ 0.21.7 allows attackers to c
A use-after-free vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remotely e
A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo
A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo
A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo
In NanoMQ v0.15.0-0, segment fault with Null Pointer Dereference occurs in the process of decoding subinfo_decode and un
In NanoMQ v0.15.0-0, a Heap overflow occurs in copyn_utf8_str function of mqtt_parser.c. Rated high severity (CVSS 7.5),
In NanoMQ v0.15.0-0, Heap overflow occurs in read_byte function of mqtt_code.c. Rated high severity (CVSS 7.5), this vul
A heap-buffer-overflow vulnerability in the read_byte function in NanoMQ v.0.21.7 allows attackers to cause a denial of
EUVD-2026-46023
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB