CVE-2026-99239 in Linux
Zusammenfassung
von VulDB • 02.11.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Bluetooth: L2CAP: __l2cap_chan_add ablehnen, wenn der Channel bereits eine Verbindung hat
Ein l2cap_chan darf höchstens einmal mit einem l2cap_conn verknüpft werden. Dies wird an mehreren Stellen angenommen, z. B. bei der Bereinigung in l2cap_chan_del.
Es liegt ein TOCTOU-Race vor, bei dem die Invariante verletzt wird:
[Aufgabe 1] [Aufgabe 2]
l2cap_chan_connect l2cap_sock_bind l2cap_chan_lock lock_sock l2cap_state_change if (sk->sk_state != BT_OPEN) chan->state = BT_CONNECT chan->state = BT_BOUND l2cap_sock_state_change_cb sk->sk_state = BT_BOUND lock_sock <------------------ release_sock sk->sk_state = BT_CONNECT
l2cap_sock_connect() überprüft sk->sk_state nicht, daher führt der Aufruf von connect() nachfolgend zu einem zweiten __l2cap_chan_add, da chan->state nun BT_BOUND ist.
Die Invariante wird in __l2cap_chan_add explizit dokumentiert und mit WARN_ON_ONCE geprüft. Die einzige Stelle, an der dies auftreten kann, ist l2cap_chan_connect; daher wurde dort eine Vorprüfung hinzugefügt, um nicht von chan->state abhängig zu sein. Das Lesen/Schreiben von chan->state wird derzeit nicht ordnungsgemäß abgesichert, sodass weitere TOCTOU-Probleme möglich sind.
In l2cap_sock_bind() wurde l2cap_lock_chan hinzugefügt, um das Schreiben in chan->state abzusichern.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.