CVE-2026-41429 Overview
CVE-2026-41429 is a memory corruption vulnerability affecting arduino-esp32, an Arduino core for ESP32 family microcontrollers including ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, and ESP32-H2. The vulnerability exists in the NetBIOS Name Service (NBNS) packet handling path and can be exploited remotely by attackers on the same local network.
When NetBIOS is enabled by calling NBNS.begin(...), the affected device listens on UDP port 137 and processes untrusted NBNS requests from the local network. The request parser trusts the attacker-controlled name_len field without enforcing bounds consistent with the fixed-size destination buffers used later in the processing flow. This can lead to stack-based buffer overflow conditions (CWE-121).
Critical Impact
Adjacent network attackers can exploit this vulnerability to achieve memory corruption, potentially leading to arbitrary code execution on affected ESP32 devices without any authentication or user interaction.
Affected Products
- arduino-esp32 versions prior to 3.3.8
- ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, and ESP32-H2 microcontrollers running vulnerable firmware
- Devices with NetBIOS Name Service enabled via NBNS.begin()
Discovery Timeline
- 2026-04-24 - CVE-2026-41429 published to NVD
- 2026-04-27 - Last updated in NVD database
Technical Details for CVE-2026-41429
Vulnerability Analysis
This vulnerability is classified as a Stack-Based Buffer Overflow (CWE-121). The flaw resides in the NBNS request parsing logic within the arduino-esp32 framework. When a device enables NetBIOS functionality through the NBNS.begin() function call, it opens UDP port 137 to receive and process NBNS queries from the local network segment.
The core issue stems from improper handling of the name_len field within incoming NBNS packets. This field, which is fully controlled by an attacker, specifies the length of a name field in the request. The parsing code fails to validate that this length value is consistent with the size of fixed-size destination buffers allocated to store the parsed data. An attacker can craft malicious NBNS packets with oversized name_len values to write beyond buffer boundaries, corrupting adjacent stack memory.
Given the adjacent network attack vector, an attacker must be positioned on the same local network as the target device. However, no privileges or user interaction are required, making this a highly exploitable vulnerability in environments where ESP32 devices operate on shared networks.
Root Cause
The root cause is insufficient input validation in the NBNS packet parser. The code trusts the attacker-controlled name_len field from incoming UDP packets without verifying that the specified length does not exceed the capacity of the destination buffers. This allows attackers to specify an arbitrary length value, causing subsequent copy operations to overflow stack-allocated buffers.
Attack Vector
The attack vector requires adjacent network access (same local network segment as the target device). An attacker can exploit this vulnerability by:
- Identifying ESP32 devices on the local network with NBNS enabled (UDP port 137 open)
- Crafting malicious NBNS request packets with manipulated name_len field values
- Sending the crafted packets to the target device
- The vulnerable parser processes the packet and overflows the stack buffer
- Depending on the payload, the attacker may achieve denial of service or arbitrary code execution
The vulnerability is exploited through malformed NBNS request packets sent to UDP port 137. The attacker manipulates the name_len field to specify a length greater than the fixed-size buffer capacity, causing a stack-based buffer overflow when the device processes the request. See the GitHub Security Advisory for technical details.
Detection Methods for CVE-2026-41429
Indicators of Compromise
- Unusual UDP traffic on port 137 directed at ESP32 devices
- Malformed NBNS packets with abnormally large name_len field values
- Device crashes or unexpected reboots of ESP32 microcontrollers
- Network captures showing NBNS requests with payload sizes exceeding normal parameters
Detection Strategies
- Monitor network traffic for anomalous NBNS packets targeting IoT devices on UDP port 137
- Implement network intrusion detection rules to flag NBNS packets with name_len values exceeding expected thresholds
- Deploy firmware inventory systems to identify devices running arduino-esp32 versions prior to 3.3.8
- Configure network segmentation alerts for unauthorized NBNS traffic between network segments
Monitoring Recommendations
- Enable packet capture and analysis on network segments containing ESP32 devices
- Configure alerting for ESP32 device resets or crashes that may indicate exploitation attempts
- Implement network traffic baseline monitoring to detect unusual UDP port 137 activity
- Review device logs for evidence of memory corruption or unexpected behavior following NBNS activity
How to Mitigate CVE-2026-41429
Immediate Actions Required
- Update arduino-esp32 to version 3.3.8 or later immediately
- Disable NetBIOS Name Service on devices where it is not required by removing NBNS.begin() calls
- Implement network segmentation to isolate ESP32 devices from untrusted network segments
- Deploy firewall rules to restrict UDP port 137 traffic to authorized sources only
Patch Information
This vulnerability is fixed in arduino-esp32 version 3.3.8. Organizations should update all affected devices to this version or later. The security advisory is available at the GitHub Security Advisory page.
Workarounds
- Disable NetBIOS functionality by removing or commenting out NBNS.begin() calls in device firmware
- Implement network-level filtering to block UDP port 137 traffic to vulnerable devices
- Isolate affected ESP32 devices on dedicated network segments with restricted access
- Deploy network access controls to prevent untrusted devices from reaching ESP32 systems
# Network firewall rule to block external NBNS traffic to ESP32 devices
# Example using iptables on a gateway/router
iptables -A FORWARD -p udp --dport 137 -d <ESP32_NETWORK_RANGE> -j DROP
# Alternative: Allow only specific trusted sources
iptables -A FORWARD -p udp --dport 137 -s <TRUSTED_SOURCE> -d <ESP32_IP> -j ACCEPT
iptables -A FORWARD -p udp --dport 137 -d <ESP32_IP> -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


