CVE-2026-97975 in Linuxinformation

Résumé

par VulDB • 25/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

Bluetooth: hci_sysfs : Correction d'une déréférencement de pointeur NULL dans device_del()

Une déréférence de pointeur NULL se produit dans klist_put() lorsqu'un périphérique enfant (tel qu'un dispositif réseau BNEP dans bnep_session) est désinscrit simultanément pendant que hci_conn_del_sysfs() change le parent des dispositifs enfants.

Cela est causé par une condition de course entre hci_conn_del_sysfs() et la désinscription simultanée d'un périphérique enfant (par exemple, bnep_session appelant unregister_netdev()). Lors de la désinscription du dispositif, device_del() capture un pointeur parent non NULL. Parallèlement, hci_conn_del_sysfs() trouve le dispositif enfant via device_find_any_child() et appelle device_move() pour changer son parent vers NULL, ce qui supprime le nœud de sa liste klist parente et efface knode_parent. Par la suite, device_del() appelle klist_del(&dev->p->knode_parent) en utilisant l'ancienne capture du parent, provoquant une déréférence de put dans knode_klist(n)->put sur un nœud déjà supprimé, entraînant ainsi une déréférencement de pointeur NULL.

Cette condition de course a été introduite par le commit 27aabf27fd01 ("Bluetooth: fix use-after-free in device_for_each_child()"), qui a remplacé device_find_child(..., __match_tty) par device_find_any_child() dans hci_conn_del_sysfs(). Ce changement visait à éviter un use-after-free où conn->dev survivait à son parent hdev->dev lorsque les dispositifs enfants détenaient des références vers conn->dev, car conn->dev ne détenait une référence que vers hdev->dev tant qu'il était enregistré dans sysfs.

Corrigez correctement le problème en prenant explicitement une référence au dispositif parent avec get_device(&hdev->dev) dans hci_conn_init_sysfs() et en la libérant avec put_device(parent) dans bt_link_release() lorsque le dispositif conn est supprimé. Cela garantit que hdev->dev reste valide tout au long du cycle de vie de conn->dev, résolvant ainsi l'use-after-free sous-jacent. Avec la référence parent correctement maintenue, restaurez le filtre __match_tty dans hci_conn_del_sysfs() afin que device_move() ne soit invoqué que sur les dispositifs TTY RFCOMM persistants comme initialement prévu, éliminant ainsi la condition de course avec la désinscription des dispositifs réseau.

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

Responsable

Linux

Réserver

25/09/2026

Divulgation

25/09/2026

Modérer

accepté

Entrée

VDB-410155

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!