CVE-2026-99015 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
Bluetooth: hci_sock: Serializzare il distacco del dispositivo non più attivo
Il riattaccamento (rebinding) di un socket HCI dopo che il suo controller è stato disregistrato può generare una condizione di race con il replay del controllo monitor e causare il crash del kernel. La funzione `hci_sock_bind()` imposta a zero (`clears`) `hci_pi(sk)->hdev` e rilascia il riferimento al dispositivo sotto la sola lock del socket, mentre `send_monitor_control_replay()` mantiene bloccata in lettura `hci_sk_list.lock`.
Il replay può osservare un valore non NULL per `hdev`, quindi bind lo azzererà e rilascerà l'ultimo riferimento prima che `create_monitor_ctrl_open()` legga `hdev->id`. Ciò può causare una dereferenziazione di puntatore nullo (NULL pointer dereference) se il puntatore viene ricaricato, oppure un use-after-free se il vecchio puntatore viene mantenuto.
Il kernel ha segnalato:
KASAN: null-ptr-deref in range [0x0000000000000068-0x000000000000006f]
RIP: 0010:create_monitor_ctrl_open+0x579/0x800 Call Trace: hci_sock_bind+0xd96/0x1190 __sys_bind+0x166/0x200 __x64_sys_bind+0x6d/0xb0 do_syscall_64+0xdd/0x4a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f
La stessa mancanza di serializzazione consente a `hci_send_to_sock()` di selezionare un socket per il vecchio dispositivo e accodarne il frame dopo che bind ha disconnesso il socket o installato una nuova associazione.
Acquisire la lock in scrittura (`for writing`) su `hci_sk_list.lock` quando si azzerano il puntatore del dispositivo e si reimposta lo stato del socket. Questo attende il completamento delle operazioni di lettura da parte dei lettori esistenti (replay e delivery) prima del distacco ed evita che i lettori successivi utilizzino la vecchia associazione. Mantenere `hci_dev_put()` al di fuori della sezione critica perché il rilascio finale del dispositivo può andare in sleep.
If you want to get best quality of vulnerability data, you may have to visit VulDB.