Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

VULNERABILIDAD

CVE-2026-79982 Escritura fuera de límites en la clase de transporte HCI USB Bluetooth cuando un paquete HCI del controlador…

bt_hci_tx_sync_in() asignaba el búfer de transferencia desde bt_hci_ep_pool, un pool fijo cuyos slots son solo de USBD_MAX_BULK_MPS bytes (64 en compilaciones solo full-speed), y luego copiaba el paquete HCI con net_buf_add_mem() sin verificar la longitud. Como los búferes de eventos y ACL HCI pueden ser mucho mayores, la copia desborda el slot de 64 bytes hacia los slots adyacentes y lo que sigue al pool. El dispositivo ejecuta el controlador Bluetooth local en modo HCI raw, por lo que los paquetes…

Alerta de Nureq Monitor

Detectada 23 OCT · 18:38

CVSS 3.1

8.8ALTA

PROBABILIDAD DE EXPLOTACIÓN (EPSS)

0,4 % PERCENTIL 31

EXPLOTACIÓN ACTIVA

No confirmada

EXPLOIT PÚBLICO

No conocido

Qué es CVE-2026-79982

bt_hci_tx_sync_in() asignaba el búfer de transferencia desde bt_hci_ep_pool, un pool fijo cuyos slots son solo de USBD_MAX_BULK_MPS bytes (64 en compilaciones solo full-speed), y luego copiaba el paquete HCI con net_buf_add_mem() sin verificar la longitud. Como los búferes de eventos y ACL HCI pueden ser mucho mayores, la copia desborda el slot de 64 bytes hacia los slots adyacentes y lo que sigue al pool. El dispositivo ejecuta el controlador Bluetooth local en modo HCI raw, por lo que los paquetes…

Productos y versiones afectadas

  • zephyrproject zephyr

    • desde 3.3.0 hasta 4.4.2

Qué hacer

  1. Verificá si usás zephyr y en qué versión: el rango afectado figura arriba.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
  3. Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.

Calculadora CVSS

CVSS 3.1 · 8.8 ALTA

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

VECTOR DE ATAQUE (AV)
Red adyacente
COMPLEJIDAD DEL ATAQUE (AC)
Baja
PRIVILEGIOS REQUERIDOS (PR)
Ninguno
INTERACCIÓN DEL USUARIO (UI)
Ninguna
ALCANCE (S)
Sin cambio
CONFIDENCIALIDAD (C)
Alta
INTEGRIDAD (I)
Alta
DISPONIBILIDAD (A)
Alta

Abrir la calculadora completa

Descripción original

The Bluetooth HCI USB transport class of the new USB device stack, subsys/usb/device_next/class/bt_hci.c, copies every controller-to-host HCI packet into a USB transfer buffer before enqueuing it on an endpoint. bt_hci_tx_sync_in() allocated that buffer from bt_hci_ep_pool, a fixed pool whose slots are only USBD_MAX_BULK_MPS bytes (64 on full-speed-only builds), and then performed net_buf_add_mem(buf, bt_buf->data, bt_buf->len) with no length check. HCI event and ACL buffers are sized by CONFIG_BT_BUF_EVT_RX_SIZE and CONFIG_BT_BUF_ACL_RX_SIZE and can be far larger, so the copy runs past the end of the 64-byte slot into the adjacent slots and into whatever follows the statically allocated pool. The device runs the local Bluetooth controller in raw HCI mode (CONFIG_BT_HCI_RAW), so the oversized packets originate over the air. With the HCI buffer sizes recommended for full-featured controllers, an unauthenticated attacker within Bluetooth range can supply the overflowing bytes: a connected peer that negotiates Data Length Extension can send ACL fragments up to CONFIG_BT_CTLR_DATA_LENGTH_MAX bytes, and an attacker that merely broadcasts extended advertising data reaches the same path through LE Extended Advertising Report events, which the controller fragments only to CONFIG_BT_BUF_EVT_RX_SIZE. In the stock configuration the overflow is already reached without any radio traffic: the mandatory Read Supported Commands command-complete event is 70 bytes and overruns the 64-byte slot by six bytes on every host initialization. Because net_buf_add_mem() validates tailroom only through an assertion unless CONFIG_NET_BUF_HARDENING is enabled, builds with CONFIG_ASSERT=n — the usual production setting — silently corrupt memory adjacent to the USB buffer pool with attacker-chosen contents, which on a target without memory protection between subsystems can lead to arbitrary code execution. Builds with assertions enabled fail the assertion instead and panic, giving a remotely triggerable denial of service. The fix introduces a separate bt_hci_tx_pool sized to MAX(BT_BUF_ACL_RX_SIZE, BT_BUF_EVT_RX_SIZE) for the controller-to-host direction while leaving the host-to-device pool at the endpoint packet size, which is already bounds-checked during reassembly.

Referencias

Historial de la alerta

  1. VULNERABILIDAD Nueva vulnerabilidad detectada.

CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.