CVE-2026-25508

6.3 MEDIUM

📋 TL;DR

This vulnerability allows a remote Bluetooth Low Energy (BLE) client to trigger an out-of-bounds read and potential memory corruption in ESP-IDF devices during provisioning mode. By sending specially crafted prepare write requests with overlapping offsets, an attacker could cause memory corruption. This affects ESP-IDF versions 5.5.2, 5.4.3, 5.3.4, 5.2.6, and 5.1.6 when BLE provisioning is enabled.

💻 Affected Systems

Products:
  • Espressif IoT Development Framework (ESP-IDF)
Versions: 5.5.2, 5.4.3, 5.3.4, 5.2.6, 5.1.6
Operating Systems: ESP-IDF based systems
Default Config Vulnerable: ⚠️ Yes
Notes: Only vulnerable when BLE provisioning transport (protocomm_ble) is enabled and device is in provisioning mode.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete device compromise, data exfiltration, or device bricking.

🟠

Likely Case

Device crash or denial of service, potentially leaking memory contents.

🟢

If Mitigated

No impact if BLE provisioning is disabled or devices are not in provisioning mode.

🌐 Internet-Facing: LOW - Requires physical proximity via BLE (typically <100m range).
🏢 Internal Only: MEDIUM - Within BLE range, attackers could exploit devices in provisioning mode.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Requires BLE access and device in provisioning mode. No authentication needed for BLE provisioning.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.5.3, 5.4.4, 5.3.5, 5.2.7, 5.1.7

Vendor Advisory: https://github.com/espressif/esp-idf/security/advisories

Restart Required: Yes

Instructions:

1. Update ESP-IDF to patched version using 'git checkout' for specific version. 2. Rebuild and flash firmware to affected devices. 3. Restart devices to apply new firmware.

🔧 Temporary Workarounds

Disable BLE provisioning

all

Disable BLE provisioning transport if not required

In sdkconfig: CONFIG_BT_ENABLED=n or disable protocomm_ble

Limit provisioning window

all

Only enable provisioning mode when needed and disable after provisioning

Implement provisioning timeout and auto-disable

🧯 If You Can't Patch

  • Disable BLE provisioning completely in device configuration
  • Implement network segmentation to isolate BLE-enabled devices from critical networks

🔍 How to Verify

Check if Vulnerable:

Check ESP-IDF version with 'git describe --tags' or examine firmware version. Verify if BLE provisioning is enabled in sdkconfig.

Check Version:

git describe --tags

Verify Fix Applied:

Confirm ESP-IDF version is 5.5.3, 5.4.4, 5.3.5, 5.2.7, or 5.1.7. Verify commit hashes include fixes from provided references.

📡 Detection & Monitoring

Log Indicators:

  • Multiple BLE prepare write requests from same client
  • Device crashes during provisioning
  • Memory corruption errors in logs

Network Indicators:

  • Unusual BLE traffic patterns during provisioning
  • Multiple prepare write requests with overlapping offsets

SIEM Query:

BLE protocol analysis for prepare write request patterns

🔗 References

📤 Share & Export