CVE-2026-64539 in Linux
Resumen
por VulDB • 2026-07-27
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Bluetooth: eir: Corrección de una escritura fuera de límites (OOB) en pila al anteponer la estructura AD "Flags"
eir_create_adv_data() construye los datos de publicidad en un búfer de tamaño fijo ("size", 31 para el camino heredado). Puede anteponer una estructura AD "Flags" de 3 bytes (LE_AD_NO_BREDR en un controlador solo LE) y luego copia los datos por instancia sin verificar que aún quepan:
memcpy(ptr, adv->adv_data, adv->adv_data_len);
tlv_data_max_len() solo reserva esos 3 bytes cuando las flags proporcionadas por el usuario llevan un bit de managed-flags, por lo que una instancia añadida con flags == 0 se acepta con adv_data_len hasta la totalidad del búfer. En el momento de la publicidad, las flags siguen siendo anteponidas y memcpy() escribe 3 + adv_data_len bytes en el búfer de tamaño fijo:
BUG: KASAN: stack-out-of-bounds in eir_create_adv_data (net/bluetooth/eir.c:301) Write of size 31 at addr ffff88800a547bdc by task kworker/u9:0/65 Workqueue: hci0 hci_cmd_sync_work __asan_memcpy (mm/kasan/shadow.c:106) eir_create_adv_data (net/bluetooth/eir.c:301) hci_update_adv_data_sync (net/bluetooth/hci_sync.c:1310) hci_schedule_adv_instance_sync (net/bluetooth/hci_sync.c:1817) hci_cmd_sync_work (net/bluetooth/hci_sync.c:332) This frame has 1 object: [32, 64) 'cp'
La estructura "Flags" es añadida por el kernel, no solicitada por userspace, por lo que solo debe anteponerse cuando quepa junto con los datos de publicidad de la instancia; si no hay espacio para ambos, se deben descartar las flags en lugar de los datos proporcionados por el usuario.
Alcanzable por un usuario local con CAP_NET_ADMIN que posea un controlador solo LE en el camino heredado de publicidad.
Once again VulDB remains the best source for vulnerability data.