Skip to main content

NanoMQ EUVDEUVD-2026-83050

| CVE-2026-73863 HIGH
Out-of-bounds Read (CWE-125)
2026-09-18 GitHub_M
7.0
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to exposed MQTT broker
  2. Exploit
    Send crafted v5 SUBSCRIBE with repeated subscription IDs
  3. Execution
    get_var_integer reads past heap buffer
  4. Impact
    Broker process crashes (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the target to be a NanoMQ broker earlier than 0.24.14 with MQTT v5 SUBSCRIBE handling reachable on the broker receive path, and a network-reachable listener the attacker can connect to. The attacker must be able to establish an MQTT session and send a SUBSCRIBE packet - feasible without credentials where anonymous access is enabled (the common default), but gated by any authentication/ACL requiring a valid client before SUBSCRIBE is processed. The malicious packet must carry a multi-byte Properties Length plus repeated SUBSCRIPTION_IDENTIFIER properties to force the incorrect offset. Reliability of an actual crash (versus a benign over-read) depends on heap layout beyond the message buffer, which is the practical limiting factor (AC:H).

Impact

This is a remote, pre-auth-capable denial-of-service in the NanoMQ broker's MQTT v5 SUBSCRIBE parsing path (heap out-of-bounds read, CWE-125). The vendor CVSS 4.0 vector (7.0, AV:N/AC:H/AT:N/PR:N/UI:N) with VC:N/VI:N/VA:N but SC:L/SI:L/SA:H frames the impact as a subsequent-system availability hit; I disagree with the scope placement - the broker process itself crashes, so the availability impact belongs on the vulnerable system (VA:H). Either way the real-world impact is a broker crash / DoS, NOT information disclosure despite the 'Information Disclosure' tag: the vendor explicitly rates confidentiality at none, and the OOB read is consumed only as a crash primitive. No EPSS score, no CISA KEV listing, and no weaponized exploit are present; only the upstream fix PR/commit and advisory exist. AC:H is defensible because reliably crashing (versus merely over-reading) depends on heap layout past the message buffer, which tempers the practical exploitation rate. Net: a legitimate availability priority for anyone exposing NanoMQ to untrusted clients, but not a mass-exploitation emergency - it is a crash bug, not RCE or data theft. Note conflicting signals to verify: vendor puts impact on subsequent system (SC/SI/SA) while the description only describes a broker crash - confirm scope intent with the vendor.

Exploit ScenarioDerived

An attacker connects to an exposed NanoMQ broker (anonymous access is the default) and sends a crafted MQTT v5 SUBSCRIBE packet with a multi-byte Properties Length and repeated SUBSCRIPTION_IDENTIFIER properties. The reused len_of_varint causes get_var_integer() to start at a wrong offset and read past the heap message buffer, crashing the broker and denying service to all connected clients. No working public exploit is published, but the advisory and fix diff describe the trigger precisely.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Remote unauthenticated denial of service affects NanoMQ MQTT brokers running versions earlier than 0.24.14, where a crafted MQTT v5 SUBSCRIBE packet triggers a heap out-of-bounds read in the broker receive path and can crash the broker process. The assessed impact is availability-only (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H): no confidentiality or integrity effect was confirmed, and the assessed vector carries PR:N, so exploitation is possible without credentials wherever anonymous MQTT access is enabled, though any authentication or ACL gate that requires a valid client before SUBSCRIBE is processed limits reachability. No public exploit code and no confirmed active exploitation were identified at time of analysis, and the practical limiting factor on a successful crash (versus a benign over-read) is heap layout, which is why AC is rated High.

RemediationAI

Vendor-released patch: upgrade to NanoMQ 0.24.14, the first fixed release, available at https://github.com/nanomq/nanomq/releases/tag/0.24.14 and described in advisory GHSA-pf97-vm7h-q84m; the underlying parser fix is in NanoNNG PR #1518 / commit f888fe39. Because the flaw is reached at packet-parse time on the broker receive path, no message-level policy can neutralize it on an unpatched build, so if immediate upgrade is not possible apply compensating controls around reachability and blast radius. First, restrict who can reach the MQTT listener (firewall or network policy to known client subnets, bind to internal interfaces only, or place the broker behind an authenticating MQTT-aware gateway) - the trade-off is less open connectivity for legitimate clients, but it removes the untrusted network path the malformed SUBSCRIBE must traverse. Second, enable NanoMQ authentication and ACLs so a valid client identity is required before SUBSCRIBE is processed; the negative side effect is client credential provisioning and maintenance overhead, and it only helps if anonymous access was previously enabled. Third, rate-limit or connection-throttle inbound MQTT sessions to raise the cost of repeated crash attempts, accepting that this does not prevent a single crafted packet from causing an over-read. Finally, since the demonstrated impact is a broker crash, run NanoMQ under a supervisor with automatic restart and alerting to shorten availability loss - this is a recovery measure, not a preventive one, and it will not stop repeated crash loops. Note that the assessed vector rates the crash outcome as AC:H because reliable process termination depends on heap layout, but affected organizations should still treat the parser as remotely reachable and untrusted. No public exploit code and no confirmed active exploitation were identified at the time of analysis, so prioritization should be driven by exposure of the MQTT listener rather than by known attacks.

Affected VersionsENISA

nanomq < 0.24.14

Affected Packages

euvd nanomq fix: 0.24.14

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

The root cause is CWE-125 (out-of-bounds read) in the broker-side MQTT v5 subscription decoder nmq_subinfo_decode() within nng/src/sp/protocol/mqtt/mqtt_parser.c. MQTT v5 encodes a Properties Length as a variable-byte integer (varint), and each SUBSCRIPTION_IDENTIFIER property inside the properties block has its own varint length field. The vulnerable code reused len_of_varint derived from the outer Properties Length when advancing past each SUBSCRIPTION_IDENTIFIER, so when the outer Properties Length is multi-byte and multiple subscription identifiers are present, get_var_integer() resumes parsing at an incorrect offset and reads past the end of the heap-allocated NNG message buffer. Because this runs on the broker's packet receive/parse path, the malformed packet is processed before any application-level handling and results in a crash-prone over-read rather than a controlled error return. The affected component set is cpe:2.3:a:nanomq:nanomq:*:*:*:*:*:*:*:*, i.e. all NanoMQ builds prior to the 0.24.14 fix, which is delivered through the bundled NanoNNG MQTT layer (PR #1518 / commit f888fe39). The vendor's fix hardens the parser in several ways: it introduces a dedicated prop_varint_len for the subscription-identifier varint instead of reusing the outer length, adds explicit bounds checks against target_pos before each NNI_GET16 read in nmq_subinfo_decode(), nmq_subtopic_decode() and nmq_unsubinfo_decode(), propagates property-parse failures as MQTT_ERR_PROTOCOL from the subscribe/unsubscribe decoders, frees partially built property objects on failure, and rejects server-only command types (CONNECT, SUBSCRIBE, UNSUBSCRIBE) received from a client-side pipe. Note that the adjacent topic-option off-by-one fixed by the same commit is a separate defect and is not the flaw tracked by this CVE.

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

Vendor (GitHub_M) PRIMARY 7.0 HIGH
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:H
vuln.today AI 5.9 MEDIUM

Remote crafted SUBSCRIBE with no auth on default anonymous brokers (PR:N); crash reliability is heap-layout dependent (AC:H); impact is broker crash only, so A:H with C:N/I:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Sep 18, 2026 - 17:17 EUVD
CVE Published
Sep 18, 2026 - 16:20 cve.org
HIGH 7.0

DescriptionCVE.org

NanoMQ is an MQTT broker. Prior to 0.24.14, NanoMQ's broker-side MQTT v5 nmq_subinfo_decode() function in nng/src/sp/protocol/mqtt/mqtt_parser.c reuses len_of_varint from the outer Properties Length while parsing each SUBSCRIPTION_IDENTIFIER. A remote client can send a SUBSCRIBE packet with a multi-byte Properties Length and repeated subscription identifiers, causing get_var_integer() 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.

Technical POC Analysis

CWE-125 (out-of-bounds read).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

NanoMQ MQTT brokers earlier than 0.24.14 can be crashed by a crafted MQTT v5 SUBSCRIBE packet, creating an availability risk for systems that depend on MQTT message routing. Because the vector requires no credentials, leadership should prioritize reducing exposed broker surfaces and confirming whether critical IoT/OT workflows rely on affected NanoMQ instances. No public exploit identified at time of analysis and no confirmed active exploitation; no vendor-released patch identified at time of analysis, so mitigation depends on configuration and monitoring.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable anonymous MQTT access, enforce authentication/ACL, restrict MQTT listener exposure to trusted networks, segment brokers, rate-limit or drop malformed MQTT v5 SUBSCRIBE traffic, monitor for broker crashes, enable auto-restart/HA, and review vendor advisory for updates.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche open-source IoT/edge MQTT broker, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

More in Nanomq

View all
CVE-2023-34488 HIGH POC
7.8 Jun 12

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 HIGH POC
7.5 Jul 14

CVE-2024-42646 is a segmentation fault vulnerability in NanoMQ v0.21.10 that allows unauthenticated remote attackers to

CVE-2025-59946 HIGH POC
7.5 Dec 27

A data race in NanoMQ MQTT Broker versions prior to 0.24.2 can free subscription-info list memory while another thread s

CVE-2024-31041 HIGH POC
7.5 Apr 17

Null Pointer Dereference vulnerability in topic_filtern function in mqtt_parser.c in NanoMQ 0.21.7 allows attackers to c

CVE-2023-33657 HIGH POC
7.5 Jun 08

A use-after-free vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remotely e

CVE-2023-33660 HIGH POC
7.5 Jun 08

A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo

CVE-2023-33658 HIGH POC
7.5 Jun 08

A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo

CVE-2023-33659 HIGH POC
7.5 Jun 06

A heap buffer overflow vulnerability exists in NanoMQ 0.17.2. Rated high severity (CVSS 7.5), this vulnerability is remo

CVE-2023-29996 HIGH POC
7.5 May 04

In NanoMQ v0.15.0-0, segment fault with Null Pointer Dereference occurs in the process of decoding subinfo_decode and un

CVE-2023-29995 HIGH POC
7.5 May 04

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),

CVE-2023-29994 HIGH POC
7.5 May 04

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

CVE-2024-31036 MEDIUM POC
6.8 Apr 22

A heap-buffer-overflow vulnerability in the read_byte function in NanoMQ v.0.21.7 allows attackers to cause a denial of

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy