CVE-2026-90092 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Bluetooth: L2CAP: Ablehnen des Hinzufügens zur Accept-Queue, es sei denn, BT_LISTEN ist gesetzt.
Ein neuer Socket (sk) sollte nicht zur Accept-Queue des übergeordneten Sockets hinzugefügt werden, nachdem l2cap_sock_cleanup_listen() in l2cap_sock_teardown_cb() ausgeführt wurde und der Zustand auf BT_CLOSED festgelegt wurde, da dies zu einem Use-After-Free (UAF) bei der Dereferenzierung der hängenden Elternreferenz führen kann.
l2cap_sock_new_connection_cb() kann mit dem Abbau des übergeordneten l2cap-chan konkurrieren (Race Condition), da chan->state ohne konsistente Sperrung abgerufen wird:
[Aufgabe 1] [Aufgabe 2]
l2cap_sock_release(parent) l2cap_connect l2cap_sock_shutdown pchan = l2cap_global_chan_by_psm l2cap_chan_lock(pchan) l2cap_chan_close l2cap_sock_teardown_cb pchan->state = BT_CLOSED l2cap_chan_unlock(pchan) ------> l2cap_chan_lock(pchan) l2cap_new_connection l2cap_sock_new_connection_cb l2cap_chan_lock(pchan) <-------- l2cap_chan_unlock(pchan) l2cap_sock_kill(parent) /* bt_sk(sk)->parent hängend */
Behebung durch Hinzufügen einer Prüfung auf sk_state == BT_LISTEN nach dem Erwerben der Socket-Sperre in l2cap_sock_new_connection_cb(). Fügen Sie lock_sock() um die Schreibvorgänge für sk_state dort hinzu, wo es fehlt, um Data Races zu vermeiden.
Obwohl auch die Data Races bei pchan->state behoben werden sollten, ist diese defensive Prüfung von sk_state wahrscheinlich in jedem Fall sinnvoll.
If you want to get best quality of vulnerability data, you may have to visit VulDB.