Executive brief
Espressif's IoT Development Framework (ESP-IDF) contains a security flaw in its Bluetooth software stack. A paired Bluetooth device, such as a smartphone or headset, could send a specially crafted message that causes the IoT device to read memory it shouldn't. While this does not directly expose sensitive user data like passwords, it could allow an attacker to learn technical details about the device's internal memory or potentially cause the device to crash, disrupting its operation.
Technical details
An out-of-bounds read vulnerability exists in the BlueDroid AVRCP vendor-command parser (avrc_pars_vendor_cmd() in avrc_pars_tg.c) within the ESP-IDF. The vulnerability is caused by the AVRC_PDU_GET_CAPABILITIES and AVRC_PDU_LIST_PLAYER_APP_VALUES handlers dereferencing the first payload byte before verifying that the payload length is at least one. An authenticated peer within Bluetooth range can send a malformed AVRCP vendor command with a zero-length payload to trigger the read. While arbitrary memory is not directly disclosed, the resulting error code acts as a limited side-channel oracle regarding the value of the adjacent heap byte. The issue is patched in versions 5.2.7, 5.3.6, 5.4.5, 5.5.4, and 6.0.1.
Affected products
- Espressif Systems ESP-IDF 5.2.6, 5.3.5, 5.4.4, 5.5.3, 6.0
Timeline
- 2026-05-19: advisory: GitHub advisory published by Espressif
- 2026-06-10: disclosed: CVE published to NVD
References
- https://github.com/espressif/esp-idf/commit/56053c4d1f37955ccf296cf2f6dfd0f7ebd4fae6
- https://github.com/espressif/esp-idf/commit/60f9362f83a05942069532f357c234cd5e5d4302
- https://github.com/espressif/esp-idf/commit/7c004d3fe3022f5f0db98dd1b2d0648a3a9cfb3f
- https://github.com/espressif/esp-idf/commit/8746e5f7e762ead84d2902edec34d84cdd701b2b
- https://github.com/espressif/esp-idf/commit/b0959b5ab1dc60398a916c80f14b1816780c801e
- https://github.com/espressif/esp-idf/commit/c53d05ae526607ca5eae9ffedaf57775eec33a4f
- https://github.com/espressif/esp-idf/security/advisories/GHSA-3pp8-42fh-3j3c