CVE-2026-98736 in Linuxinformación

Resumen

por VulDB • 2026-10-18

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

Bluetooth: hci_conn: Bloquear el acceso al padre durante la configuración mejorada de SCO

hci_enhanced_setup_sync() se ejecuta en la cola de trabajo de solicitud sin que esté retenido el bloqueo hci_dev por su llamador cuando se colgó la configuración. Su comprobación de capacidad CVSD y find_next_esco_param() desreferencian conn->parent mientras la cola de trabajo de recepción puede desvincular y liberar ese padre.

La siguiente intercalación puede causar un use-after-free:

hci_enhanced_setup_sync() hci_disconn_complete_evt() load conn->parent hci_dev_lock() hci_conn_del(ACL parent) unlink SCO child drop link's parent reference clear child->parent release ACL parent bt_link_release() kfree(parent) hci_dev_unlock() read parent->features[0][3]

La referencia retenida para el hijo de SCO encolado no mantiene vivo a su padre ACL después de la desvinculación. El commit 42de40abe25d ("Bluetooth: hci_conn: fix the SCO setup context lifetime") protege al niño almacenado en el contexto encolado, pero deja estos accesos al padre sin protección.

Con un retraso de diagnóstico de 40 ms después de cargar conn->parent, un kernel instrumentado basado en fd179f8a05be, que ya contiene 42de40abe25d,

BUG: KASAN: slab-use-after-free in hci_enhanced_setup_sync+0xda5/0xdf0 Read of size 1 at addr ffff888102204047 by task kworker/u17:0/93 Call Trace: hci_enhanced_setup_sync+0xda5/0xdf0 hci_cmd_sync_work+0x13c/0x290 process_one_work+0x6b4/0x10e0

Allocated by task 92: __hci_conn_add+0x304/0x1df0 hci_connect_acl+0x349/0x3e0 hci_connect_sco+0x3b/0x9a0 sco_sock_connect+0x475/0xca0

Freed by task 94: kfree+0x121/0x3c0 bt_link_release+0x79/0xa0 device_release+0xc8/0x240 kobject_put+0x14d/0x280 hci_conn_del+0x524/0xe30 hci_disconn_complete_evt+0x403/0x8c0 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730

La dirección accedida está 71 bytes dentro del padre ACL liberado, en su byte features[0][3]; el hijo de SCO encolado es un objeto diferente. El diagnóstico preserva al padre cargado a través del retraso, coincidiendo con la comprobación de capacidad compilada sin modificar, y no cambia las referencias al padre ni la ruta de desmontaje.

Mantener hci_dev_lock() durante el cambio de códec, incluyendo cada llamada a find_next_esco_param(), y liberarlo en todos los errores de selección. Mantener configure_datapath_sync() fuera de la sección crítica porque espera eventos HCI. Preservar la selección de parámetros y los valores de retorno existentes.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-18

Moderación

aceptado

Artículo

VDB-421931

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!