CVE-2026-5589

An integer underflow in bt_mesh_sol_recv() in the Bluetooth Mesh solicitation handling (subsys/bluetooth/mesh/solicitation.c) leads to an out-of-bounds write. When CONFIG_BT_MESH_OD_PRIV_PROXY_SRV is enabled, the function parses solicitation PDUs from raw BLE advertising payloads. The AD parsing loop reads an attacker-controlled length byte (reported_len) and computes reported_len - 3 without checking that reported_len >= 3. When reported_len is less than 3, the subtraction is performed in signed int arithmetic and yields a negative value that bypasses the length guard and is then implicitly converted to a very large size_t when passed to net_buf_simple_pull_mem(). In builds without assertions, this wraps the buffer length and advances the data pointer far out of bounds, so subsequent reads dereference invalid memory. A nearby BLE device can trigger this with a non-connectable advertisement carrying a UUID16 AD structure and a crafted length byte, with no pairing or prior association required, potentially leading to denial of service or arbitrary code execution.
References
Configurations

Configuration 1 (hide)

cpe:2.3:o:zephyrproject:zephyr:*:*:*:*:*:*:*:*

History

22 Jul 2026, 20:10

Type Values Removed Values Added
Summary
  • (es) Un desbordamiento negativo de entero en bt_mesh_sol_recv() en el manejo de solicitudes de Bluetooth Mesh (subsys/bluetooth/mesh/solicitation.c) conduce a una escritura fuera de límites. Cuando CONFIG_BT_MESH_OD_PRIV_PROXY_SRV está habilitado, la función analiza PDUs de solicitud de cargas útiles de publicidad BLE en bruto. El bucle de análisis de AD lee un byte de longitud controlado por el atacante (reported_len) y calcula reported_len - 3 sin verificar que reported_len >= 3. Cuando reported_len es menor que 3, la resta se realiza en aritmética de enteros con signo y produce un valor negativo que elude la protección de longitud y luego se convierte implícitamente a un size_t muy grande cuando se pasa a net_buf_simple_pull_mem(). En compilaciones sin aserciones, esto envuelve la longitud del búfer y avanza el puntero de datos mucho más allá de los límites, por lo que las lecturas posteriores desreferencian memoria no válida. Un dispositivo BLE cercano puede activar esto con un anuncio no conectable que lleva una estructura AD UUID16 y un byte de longitud manipulado, sin necesidad de emparejamiento o asociación previa, lo que podría conducir a denegación de servicio o ejecución de código arbitrario.

08 Jul 2026, 13:28

Type Values Removed Values Added
First Time Zephyrproject zephyr
Zephyrproject
References () https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-4pm9-4v7f-x6gr - () https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-4pm9-4v7f-x6gr - Exploit, Patch, Vendor Advisory
CPE cpe:2.3:o:zephyrproject:zephyr:*:*:*:*:*:*:*:*

05 Jun 2026, 19:16

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 6.3

04 Jun 2026, 20:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-06-04 20:16

Updated : 2026-07-22 20:10


NVD link : CVE-2026-5589

Mitre link : CVE-2026-5589

CVE.ORG link : CVE-2026-5589


JSON object : View

Products Affected

zephyrproject

  • zephyr
CWE
CWE-787

Out-of-bounds Write