{"id":25500,"date":"2026-09-18T04:31:28","date_gmt":"2026-09-17T20:31:28","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90091"},"modified":"2026-09-18T04:31:28","modified_gmt":"2026-09-17T20:31:28","slug":"cve-2026-90091","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90091","title":{"rendered":"CVE-2026-90091 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: fix"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: L2CAP: fix race l2cap_sock_cleanup_listen() vs. put_chan<\/p>\n<p>For L2CAP sockets without owning sk-&gt;sk_socket, reading<br \/>\nl2cap_pi(sk)-&gt;chan may race against concurrent l2cap_sock_kill() -&gt;<br \/>\nl2cap_sock_put_chan().  This excludes simultaneous proto_ops callbacks,<br \/>\nbut access in l2cap_sock_cleanup_listen() has unsafe lockless read.<\/p>\n<p> [Task 1]                         [Task 2 (hdev-&gt;workqueue)]<br \/>\n l2cap_sock_release(parent)       l2cap_disconn_cfm<br \/>\n   l2cap_sock_cleanup_listen        l2cap_conn_del<br \/>\n     bt_accept_dequeue                l2cap_chan_del<br \/>\n       lock_sock(sk)                    l2cap_sock_teardown_cb<br \/>\n       bt_accept_unlink<br \/>\n         bt_sk(sk)-&gt;parent = NULL<br \/>\n       release_sock(sk) &#8212;&#8212;&#8212;&#8212;&#8212;-&gt; lock_sock(sk)<br \/>\n                                          parent = \/* NULL *\/<br \/>\n     lock_sock(sk) chan         l2cap_pi(sk)-&gt;chan = NULL<br \/>\n     l2cap_chan_hold_unless_zero            l2cap_put_chan(chan)<br \/>\n       kref_get_unless_zero(&amp;chan-&gt;ref)<\/p>\n<p>Task 1 may observe NULL which causes null-ptr-deref.<\/p>\n<p>Fix the race by taking lock_sock() in l2cap_sock_kill() to<br \/>\nsynchronize with l2cap_sock_cleanup_listen().  hold_unless_zero() is not<br \/>\nneeded here, l2cap_pi(sk)-&gt;chan owns reference if it is non-NULL.<\/p>\n<p>Clarify code comments vs. locking.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>Bluetooth: L2CAP: fix race l2cap_sock_cleanup_listen() vs. put_chan<\/p>\n<p>For L2CAP sockets without owning sk-&gt;sk_socket, reading<br \/>\nl2cap_<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25500","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}