CVE-2025-35003 Overview
CVE-2025-35003 identifies critical memory corruption vulnerabilities in the Apache NuttX Real-Time Operating System (RTOS) Bluetooth stack. Specifically, Improper Restriction of Operations within the Bounds of a Memory Buffer (CWE-119) and Stack-based Buffer Overflow vulnerabilities were discovered in the HCI and UART components of the Bluetooth stack. These flaws can be triggered by receiving maliciously crafted Bluetooth packets, potentially resulting in system crashes, denial of service, or arbitrary code execution on affected devices.
Apache NuttX is a widely deployed RTOS used in embedded systems, IoT devices, and resource-constrained environments. The network-accessible nature of this vulnerability, combined with the lack of required authentication or user interaction, makes it particularly dangerous for deployed devices in production environments.
Critical Impact
Unauthenticated remote attackers can exploit these buffer overflow vulnerabilities via malicious Bluetooth packets to achieve arbitrary code execution, completely compromising affected embedded systems and IoT devices.
Affected Products
- Apache NuttX versions 7.25 through 12.8.x (prior to 12.9.0)
- Apache NuttX RTOS Bluetooth Stack (HCI component)
- Apache NuttX RTOS Bluetooth Stack (UART component)
Discovery Timeline
- 2025-05-26 - CVE-2025-35003 published to NVD
- 2025-07-08 - Last updated in NVD database
Technical Details for CVE-2025-35003
Vulnerability Analysis
The vulnerabilities reside in Apache NuttX's Bluetooth HCI (Host Controller Interface) and UART (Universal Asynchronous Receiver-Transmitter) stack components. These components are responsible for processing incoming Bluetooth packets and managing communication between the Bluetooth host and controller layers.
The core issue involves improper bounds checking when processing incoming Bluetooth packets. When malformed packets with unexpected length fields or payload sizes are received, the affected code fails to properly validate these boundaries before performing memory operations. This allows an attacker to overflow stack-based buffers, corrupting adjacent memory regions.
In embedded RTOS environments like NuttX, successful exploitation of stack-based buffer overflows can be particularly devastating. Unlike traditional operating systems, many embedded systems lack modern exploit mitigations such as ASLR or stack canaries, making code execution more reliable for attackers.
Root Cause
The root cause is insufficient input validation and boundary checking in the Bluetooth HCI and UART packet processing routines. Specifically, the code does not properly verify that incoming packet data fits within allocated buffer sizes before copying data, leading to stack-based buffer overflow conditions. This represents a classic CWE-119 violation where operations are not properly constrained to intended memory buffer boundaries.
Attack Vector
Exploitation occurs over the network via Bluetooth communication. An attacker within Bluetooth range of a vulnerable device can craft malicious Bluetooth packets with oversized or malformed data structures. When these packets are processed by the vulnerable HCI or UART components, the buffer overflow is triggered.
The attack requires no authentication and no user interaction, making it a direct remote code execution vector. The attacker can potentially:
- Send specially crafted Bluetooth packets to the target device
- Trigger buffer overflow in the HCI/UART packet processing code
- Overwrite return addresses or function pointers on the stack
- Achieve arbitrary code execution with the privileges of the RTOS kernel
For technical details on the vulnerability mechanism and the specific code changes, refer to the Apache NuttX GitHub Pull Request #16179 which contains the security fixes.
Detection Methods for CVE-2025-35003
Indicators of Compromise
- Unexpected system crashes or resets on devices running Apache NuttX with Bluetooth enabled
- Anomalous Bluetooth HCI traffic with oversized or malformed packet structures
- Unusual behavior or unauthorized processes on embedded devices following Bluetooth activity
- Memory corruption signatures or unexpected stack state in crash dumps
Detection Strategies
- Deploy Bluetooth traffic monitoring to identify malformed or anomalous HCI/UART packets targeting vulnerable devices
- Implement firmware integrity monitoring on NuttX-based devices to detect signs of compromise
- Enable crash dump collection and analysis to identify potential exploitation attempts
- Monitor for unexpected device reboots or service disruptions that may indicate exploitation
Monitoring Recommendations
- Establish baseline Bluetooth communication patterns for NuttX devices and alert on deviations
- Implement network segmentation to isolate IoT and embedded devices running vulnerable firmware
- Deploy SentinelOne Singularity for IoT-capable endpoints to monitor for behavioral anomalies
- Review device logs for Bluetooth stack errors or memory-related exceptions
How to Mitigate CVE-2025-35003
Immediate Actions Required
- Upgrade all Apache NuttX deployments to version 12.9.0 or later immediately
- Disable Bluetooth functionality on NuttX devices where it is not operationally required
- Implement network segmentation to limit Bluetooth exposure of vulnerable devices
- Review device inventory to identify all Apache NuttX deployments running versions 7.25 through 12.8.x
Patch Information
Apache NuttX version 12.9.0 contains the security fixes for these Bluetooth stack vulnerabilities. Users of NuttX's Bluetooth HCI/UART stack should upgrade to this version as soon as possible. The fix addresses the improper bounds checking in the HCI and UART components that allowed the buffer overflow conditions.
For detailed information on the code changes, refer to the GitHub Pull Request #16179. Additional discussion is available on the Apache Mailing List and the OpenWall OSS Security Thread.
Workarounds
- Disable Bluetooth functionality entirely in the NuttX configuration if not required for device operation
- Implement physical security controls to limit Bluetooth radio range exposure
- Deploy perimeter controls to detect and block malicious Bluetooth activity where possible
- Consider firmware rollback procedures and device recovery plans in case of compromise
If immediate patching is not feasible, disabling the Bluetooth stack components (HCI and UART) through NuttX configuration options can serve as a temporary mitigation. This can typically be achieved by modifying the defconfig file for your board configuration:
# Disable Bluetooth in NuttX configuration
# Edit your board's defconfig file and ensure these options are disabled:
# CONFIG_BLUETOOTH=n
# CONFIG_BLUETOOTH_UART=n
# Rebuild firmware without Bluetooth support
cd nuttx
make distclean
./tools/configure.sh <board>:<config>
make
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

