CVE-2026-90091

High

Description

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.

SeverityHigh
CVSS8.0
Exploit probability—
ProductLinux
PublishedSep 17, 2026
First seenSep 17, 2026

How to fix

Update
  • Linux Linux827de6bd2865b22aaabd554540def3b8a33018ab, 7c7ac736b50fa259ed1bdddc18d79523f07c0442, 4f8c63fe0097c9f6ea34409f82f79b3894903d91, 61d5ddbd524c715b224cbe7e9f01da4e05098b19, 32a7bc6e93be36b37fe61f351d312d358195bd61, 66d6ef18548ae6d7dd452b84115fc82c0a73a4ea, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2 or later

Affected products

ProductAffected versionsFixed in
Linux Linuxb39298044e5534612511a2ff5de03ba5f6e7a820 ≤ v < 827de6bd2865b22aaabd554540def3b8a33018ab, 8c37e4338c801ebb8cee52436c01c41e009f6e87 ≤ v < 7c7ac736b50fa259ed1bdddc18d79523f07c0442, 84e718b6a814edc84159361f9f454a4e92ae91ae ≤ v < 4f8c63fe0097c9f6ea34409f82f79b3894903d91, 36da806f7fbaee56ad9e81859deec203f9728700 ≤ v < 61d5ddbd524c715b224cbe7e9f01da4e05098b19, 6fef032af0092ed5ccb767239a9ac1bc38c08a40 ≤ v < 32a7bc6e93be36b37fe61f351d312d358195bd61, 6fef032af0092ed5ccb767239a9ac1bc38c08a40 ≤ v < 66d6ef18548ae6d7dd452b84115fc82c0a73a4ea, 733e76e74e406c1d1ddc7369420dd8a47f48bb8a, 6.1.178 ≤ v < 6.1.188, 6.6.145 ≤ v < 6.6.157, 6.12.97 ≤ v < 6.12.110, 6.18.40 ≤ v < 6.18.52, 7.1.5 ≤ v < 7.2, 7.2827de6bd2865b22aaabd554540def3b8a33018ab, 7c7ac736b50fa259ed1bdddc18d79523f07c0442, 4f8c63fe0097c9f6ea34409f82f79b3894903d91, 61d5ddbd524c715b224cbe7e9f01da4e05098b19, 32a7bc6e93be36b37fe61f351d312d358195bd61, 66d6ef18548ae6d7dd452b84115fc82c0a73a4ea, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.