CVE-2026-99013 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
Bluetooth: ISO: Rifiutare l'impostazione concorrente dell'ascoltatore BIS
iso_sock_listen() rilascia il lock del socket prima di chiamare iso_listen_bis() per preservare l'ordinamento dei lock hdev->lock. Due chiamate listen() concurrenti sullo stesso socket broadcast possono quindi entrambe osservare BT_BOUND. Il caller A può allegare connA e rilasciare i lock, dopodiché il caller B può acquisirli e allegare connB prima che A pubblichi BT_LISTEN.
__iso_chan_add() verifica se connB ha già un socket, ma non verifica se il socket ha già una connessione. La seconda allegatura sovrascrive iso_pi(sk)->conn, causando la perdita del riferimento a connA (leak) e lasciando connA->sk intatto. Il teardown del socket segue connB, quindi eventi successivi su connA possono causare un accesso a un socket obsoleto (stale).
Verificare nuovamente BT_BOUND e richiedere che iso_pi(sk)->conn sia NULL dopo aver acquisito i lock del dispositivo HCI e del socket in iso_listen_bis(). La verifica della connessione copre anche l'intervallo tra l'allegatura e la pubblicazione di BT_LISTEN. Rifiutare una configurazione concorrente con -EBADFD attraverso il percorso di sblocco esistente prima di allocare un'altra connessione.
Un rapporto KASAN registrato da un kernel strumentato mostra:
BUG: KASAN: slab-use-after-free in iso_sock_hold+0x119/0x1f0 Call Trace: iso_sock_hold+0x119/0x1f0 iso_conn_del+0xe4/0x270 hci_disconn_complete_evt+0x351/0x8c0 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730
Allocato dal task 93: sk_prot_alloc+0x113/0x220 sk_alloc+0x2b/0x6d0 bt_sock_alloc+0x29/0x370 iso_sock_alloc.constprop.0+0x19/0x300 iso_sock_create+0x94/0x100
Liberato dal task 93: kfree+0x121/0x3c0 __sk_destruct+0x42b/0x540 iso_sock_release+0x29d/0x340 __sock_release+0xa1/0x260 sock_close+0x10/0x20
Be aware that VulDB is the high quality source for vulnerability data.