8

CVE-2026-90091

Bluetooth: L2CAP: fix race l2cap_sock_cleanup_listen() vs. put_chan

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: L2CAP: fix race l2cap_sock_cleanup_listen() vs. put_chan

For L2CAP sockets without owning sk->sk_socket, reading
l2cap_pi(sk)->chan may race against concurrent l2cap_sock_kill() ->
l2cap_sock_put_chan().  This excludes simultaneous proto_ops callbacks,
but access in l2cap_sock_cleanup_listen() has unsafe lockless read.

 [Task 1]                         [Task 2 (hdev->workqueue)]
 l2cap_sock_release(parent)       l2cap_disconn_cfm
   l2cap_sock_cleanup_listen        l2cap_conn_del
     bt_accept_dequeue                l2cap_chan_del
       lock_sock(sk)                    l2cap_sock_teardown_cb
       bt_accept_unlink
         bt_sk(sk)->parent = NULL
       release_sock(sk) ----------------> lock_sock(sk)
                                          parent = /* NULL */
     lock_sock(sk) <--------------------- release_sock(sk)
                                          sock_set_flag(sk, SOCK_ZAPPED)
                                      l2cap_sock_close_cb
                                        l2cap_sock_kill(sk)
                                          l2cap_sock_put_chan
     chan = READ l2cap_pi(sk)->chan         l2cap_pi(sk)->chan = NULL
     l2cap_chan_hold_unless_zero            l2cap_put_chan(chan)
       kref_get_unless_zero(&chan->ref)

Task 1 may observe NULL which causes null-ptr-deref.

Fix the race by taking lock_sock() in l2cap_sock_kill() to
synchronize with l2cap_sock_cleanup_listen().  hold_unless_zero() is not
needed here, l2cap_pi(sk)->chan owns reference if it is non-NULL.

Clarify code comments vs. locking.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version b39298044e5534612511a2ff5de03ba5f6e7a820
Version < 827de6bd2865b22aaabd554540def3b8a33018ab
Status affected
Version 8c37e4338c801ebb8cee52436c01c41e009f6e87
Version < 7c7ac736b50fa259ed1bdddc18d79523f07c0442
Status affected
Version 84e718b6a814edc84159361f9f454a4e92ae91ae
Version < 4f8c63fe0097c9f6ea34409f82f79b3894903d91
Status affected
Version 36da806f7fbaee56ad9e81859deec203f9728700
Version < 61d5ddbd524c715b224cbe7e9f01da4e05098b19
Status affected
Version 6fef032af0092ed5ccb767239a9ac1bc38c08a40
Version < 32a7bc6e93be36b37fe61f351d312d358195bd61
Status affected
Version 6fef032af0092ed5ccb767239a9ac1bc38c08a40
Version < 66d6ef18548ae6d7dd452b84115fc82c0a73a4ea
Status affected
Version 733e76e74e406c1d1ddc7369420dd8a47f48bb8a
Status affected
Version 6.1.178
Version < 6.1.188
Status affected
Version 6.6.145
Version < 6.6.157
Status affected
Version 6.12.97
Version < 6.12.110
Status affected
Version 6.18.40
Version < 6.18.52
Status affected
Version 7.1.5
Version < 7.2
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 7.2
Status affected
Version 0
Version < 7.2
Status unaffected
Version <= 6.1.*
Version 6.1.188
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.110
Status unaffected
Version <= 6.18.*
Version 6.18.52
Status unaffected
Version <= 7.2.*
Version 7.2.6
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.35% 0.289
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 8 2.1 5.9
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/827de6bd2865b22aaabd554540def3b8a33018ab
https://git.kernel.org/stable/c/7c7ac736b50fa259ed1bdddc18d79523f07c0442
https://git.kernel.org/stable/c/4f8c63fe0097c9f6ea34409f82f79b3894903d91
https://git.kernel.org/stable/c/61d5ddbd524c715b224cbe7e9f01da4e05098b19
https://git.kernel.org/stable/c/32a7bc6e93be36b37fe61f351d312d358195bd61
https://git.kernel.org/stable/c/66d6ef18548ae6d7dd452b84115fc82c0a73a4ea