CVE-2026-101003
Executive Summary
CVE-2026-101003 is a stack-based buffer overflow (CWE-119) in Cesanta Mongoose versions up to and including 7.21, affecting the MQTT broker tutorial component located at tutorials/mqtt/mqtt-server/main.c. A remote, unauthenticated attacker can trigger the overflow through manipulation of input processed by the affected function, potentially leading to a denial-of-service or memory corruption. The vulnerability is publicly disclosed with exploit code reportedly available, but the CVSS v3.1 base score is 5.3 (Medium), reflecting limited impact in the default configuration.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in the MQTT broker example shipped with Cesanta Mongoose, a widely embedded networking library. Specifically, the flaw is in a function named fn within tutorials/mqtt/mqtt-server/main.c (per the NVD description). The affected component is the MQTT Broker functionality, and the vulnerability class is a stack-based buffer overflow (CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer).
Because the NVD description does not provide the exact function logic or the input length constraints, the precise trigger cannot be reconstructed from the available data. However, the MQTT protocol’s message parsing (e.g., CONNECT, PUBLISH, or SUBSCRIBE packets) is the likely attack surface. An attacker would send a crafted MQTT packet containing data that exceeds the bounds of a fixed-size stack buffer, overwriting adjacent memory. The attack is remotely launchable (AV:N), requires no privileges (PR:N) and no user interaction (UI:N), but the CVSS vector indicates no confidentiality or integrity impact (C:N/I:N), only a low availability impact (A:L). This suggests that successful exploitation in the default configuration primarily causes a crash or resource exhaustion rather than remote code execution. That said, stack-based overflows can often be escalated to code execution in non-hardened builds; the CVSS scoring may reflect the MQTT broker example’s typical exposure or compiler mitigations.
The patch is identified by commit a9df523f76f43a38bd53b4232b9cfd4c16869e71 which is included in version 7.22, and upgrading is advised per the CNA.
Exploitation Scenarios
Reconnaissance/Target Identification: An adversary scans for exposed MQTT brokers (default TCP port 1883) running Cesanta Mongoose-based server applications. Shodan queries for
product:Mongooseor HTTP titles containing "Mongoose" can identify potential targets. The attacker confirms the service version is ≤ 7.21 through banner grabbing or error messages.Triggering the Flaw: The attacker establishes a TCP connection to the MQTT broker and sends a crafted MQTT control packet. The malformed packet is parsed by the broker, reaching the vulnerable function
fnintutorials/mqtt/mqtt-server/main.c. The input is copied into a stack buffer without adequate bounds checking, causing a stack-based buffer overflow.Payload/Execution Method: No public PoC is available per the intelligence data, but the NVD description states "the exploit has been made available to the public and could be used for attacks." At the vulnerability-class level, the attacker would craft an MQTT packet with an oversized field (e.g., a long client ID, topic name, or payload) designed to overwrite the return address or adjacent stack variables. Depending on stack layout and memory protections (ASLR, stack canaries, NX), this could lead to a crash (denial of service) or, in the worst case, controlled code execution. The CVSS score indicates the primary expected impact is availability only.
Post-Exploitation Impact: If exploitation results only in a crash, the impact is a denial-of-service of the MQTT broker, disrupting IoT device communications. If code execution is achieved, the attacker could execute arbitrary commands with the privileges of the broker process, potentially pivoting to the underlying system or other connected devices. However, the CVSS vector implies no data confidentiality or integrity loss, so the most probable outcome is service disruption.
Impact Assessment
The CVSS v3.1 base score is 5.3 (Medium) with the vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L. This translates to:
- Attack Vector (AV:N): Exploitable remotely over the network.
- Attack Complexity (AC:L): No special conditions; the attack is straightforward.
- Privileges Required (PR:N): No authentication needed.
- User Interaction (UI:N): No user action required.
- Scope (S:U): Impact is confined to the vulnerable component.
- Confidentiality (C:N): No loss of confidentiality.
- Integrity (I:N): No loss of integrity.
- Availability (A:L): Low impact; the service may be degraded or interrupted but not fully destroyed.
Business impact includes disruption of MQTT-based IoT ecosystems, potentially affecting industrial control, smart home, or telemetry systems. The blast radius is limited to systems running the affected MQTT broker example, but if the broker is a central message hub, many dependent devices could lose connectivity. The EPSS score is not yet available, and CISA KEV does not list this CVE. Public exploit availability raises the risk of opportunistic attacks, but the low CVSS impact suggests it is not a primary vector for mass exploitation.
Detection Guidance
Sigma Rule
title: Potential MQTT Stack Buffer Overflow Exploitation Attempt (CVE-2026-101003)
id: 9b3c7d2a-5f6e-4a1b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects network connections to MQTT brokers that may indicate exploitation of a stack-based buffer overflow in Cesanta Mongoose MQTT broker tutorial.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-101003
author: Valters IT Threat Intelligence
date: 2026/05/20
tags:
- attack.t1190
- cve.2026.101003
logsource:
category: network_connection
product: windows
detection:
selection:
DestinationPort: 1883
Initiated: 'true'
condition: selection
falsepositives:
- Legitimate MQTT clients connecting to broker
level: low
YARA Rule
rule CVE_2026_101003_MQTT_Overflow_Attempt
{
meta:
description = "Detects potentially malicious MQTT packets targeting CVE-2026-101003"
author = "Valters IT Threat Intelligence"
date = "2026-05-20"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-101003"
hash = "a9df523f76f43a38bd53b4232b9cfd4c16869e71"
strings:
$mqtt_connect = { 10 ?? 00 04 4D 51 54 54 } // MQTT CONNECT packet with protocol name "MQTT"
$long_payload = /[\x00-\xff]{512,}/ // heuristic for oversized payloads
condition:
$mqtt_connect and #long_payload > 0
}
Suricata IDS Rule
alert tcp any any -> any 1883 (msg:"CVE-2026-101003 Cesanta Mongoose MQTT Broker Stack Buffer Overflow Attempt"; flow:to_server,established; content:"|10|"; depth:1; content:"|00 04 4D 51 54 54|"; within:10; byte_test:2,>,1024,0,relative; reference:cve,2026-101003; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-101003; classtype:attempted-dos; sid:10000001; rev:1;)
Elastic Detection
network where destination.port == 1883 and event.action == "connection_started" and process.name != null and process.name : ("mosquitto", "emqx", "mongoose")
Splunk SPL Query
index=network sourcetype=firewall OR sourcetype=bro
| search dest_port=1883
| stats count by src_ip, dest_ip, dest_port
| where count > 100
Wazuh OSSEC Rule
<group name="mqtt,attack,">
<rule id="100100" level="10">
<decoded_as>json</decoded_as>
<field name="destination.port">1883</field>
<description>CVE-2026-101003: Possible MQTT stack buffer overflow exploitation attempt</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
Immediate Mitigations:
- Restrict network access to MQTT brokers (TCP 1883) to trusted IP ranges only.
- Deploy a reverse proxy or MQTT-aware firewall to inspect and limit packet sizes.
- Disable the MQTT broker tutorial component if not actively used in production.
- Monitor for crashes or restart loops in the broker process.
Patch/Upgrade Steps:
- The vendor has released version 7.22 which includes commit
a9df523f76f43a38bd53b4232b9cfd4c16869e71. Although the intelligence data reports no patch evidence from tracked sources, the NVD description explicitly states upgrading to 7.22 addresses the issue. Apply this update as soon as feasible. - If upgrading is not immediately possible, isolate the affected service and apply the mitigations above.
- The vendor has released version 7.22 which includes commit
Long-term Hardening:
- Replace tutorial/example code with production-hardened MQTT broker implementations.
- Compile with stack canaries (
-fstack-protector-strong), ASLR, and NX/DEP enabled. - Conduct regular fuzzing of MQTT parsing code to identify similar flaws.
- Implement network segmentation for IoT/OT environments.
References
- NVD - CVE-2026-101003
- Cesanta Mongoose GitHub Repository
- Vendor Commit a9df523f76f43a38bd53b4232b9cfd4c16869e71
- CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
- MITRE ATT&CK T1190: Exploit Public-Facing Application
- No known threat actor campaigns or exploit-in-the-wild evidence is currently associated with this CVE per available intelligence.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.