CVE-2026-97908 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
Bluetooth: btqcomsmd : destruction des points de terminaison RPMsg avant la libération du hci_dev
Les points de terminaison RPMsg pour les commandes et ACL stockent struct btqcomsmd comme données privées de rappel. Les rappels de réception déréférencent btq->hdev sans prendre de référence sur le hci_dev.
L'ordre actuel d'arrêt libère le hci_dev avant de détruire les points de terminaison RPMsg, tant dans le chemin d'erreur de hci_register_dev() que dans la voie de suppression du pilote. Si WCNSS délivre des données durant cette fenêtre, le rappel du point de terminaison peut s'exécuter avec un hci_dev déjà libéré et le transmettre au noyau Bluetooth.
Pour les points de terminaison qcom_smd, rpmsg_destroy_ept() ferme le canal et efface le rappel sous le verrou recv_lock du canal. Le chemin de réception détient le même verrou lors de l'appel du rappel ; détruire d'abord les points de terminaison empêche ainsi les nouveaux rappels et sérialise avec tout rappel déjà en cours.
Détruisez les points de terminaison des commandes et ACL avant hci_free_dev(). Gardez hci_unregister_dev() en premier lors de la suppression afin que le noyau HCI cesse d'émettre des opérations avant l'arrêt des points de terminaison du transport. Dans le chemin complet de nettoyage en cas d'erreur d'enregistrement, revenez directement après avoir libéré le hci_dev pour éviter de tomber dans les étiquettes de construction partielle et de détruire les points de terminaison deux fois.
If you want to get best quality of vulnerability data, you may have to visit VulDB.