CVE-2026-97975 in Linuxinformazioni

Riassunto

di VulDB • 25/09/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

Bluetooth: hci_sysfs: Correzione del dereferenziamento di puntatore NULL in device_del()

Si verifica un dereferenziamento di puntatore NULL in klist_put() quando una child device (ad esempio, un dispositivo di rete BNEP in bnep_session) viene disregistrata contemporaneamente mentre hci_conn_del_sysfs() cambia il genitore delle child devices.

Ciò è causato da una race condition tra hci_conn_del_sysfs() e la disregistrazione concorrente della child device (ad esempio, bnep_session che chiama unregister_netdev()). Durante la disregistrazione del dispositivo, device_del() acquisisce uno snapshot di un puntatore al genitore non NULL. Contestualmente, hci_conn_del_sysfs() individua la child device utilizzando device_find_any_child() e chiama device_move() per cambiarne il genitore impostandolo su NULL, rimuovendo così il nodo dalla klist del suo genitore e cancellando knode_parent. Successivamente, device_del() chiama klist_del(&dev->p->knode_parent) utilizzando lo snapshot obsoleto del genitore, causando un dereferenziamento di knode_klist(n)->put su un nodo già rimosso da parte di klist_put(), con conseguente dereferenziamento di puntatore NULL.

Questa race condition è stata introdotta dal commit 27aabf27fd01 ("Bluetooth: fix use-after-free in device_for_each_child()"), che ha sostituito device_find_child(..., __match_tty) con device_find_any_child() in hci_conn_del_sysfs(). Tale modifica era intesa per evitare un use-after-free in cui conn->dev sopravviveva al suo genitore hdev->dev quando le child devices mantenevano riferimenti a conn->dev, poiché conn->dev deteneva solo un riferimento a hdev->dev mentre era registrato nel sysfs.

Si risolve il problema correttamente acquisendo un riferimento esplicito al dispositivo genitore con get_device(&hdev->dev) in hci_conn_init_sysfs() e rilasciandolo con put_device(parent) in bt_link_release() quando la conn device viene liberata. Ciò garantisce che hdev->dev rimanga valido per l'intero ciclo di vita della conn->dev, risolvendo il sottostante use-after-free. Con il riferimento al genitore mantenuto correttamente, si ripristina il filtro __match_tty in hci_conn_del_sysfs() in modo che device_move() venga invocato solo sulle dispositivi TTY RFCOMM persistenti come originariamente previsto, eliminando la race condition con le disregistrazioni dei dispositivi di rete.

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

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

25/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!