HIGH
bluetooth L2CAP UserList UAF
CVE-2026-23461
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.5HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix use-after-free in l2cap_unregister_user After commit ab4eedb790ca ("Bluetooth: L2CAP: Fix corrupted list in hci_chan_del"), l2cap_conn_del() uses conn->lock to protect access to conn->users. However, l2cap_register_user() and l2cap_unregister_user() don't use conn->lock, creating a race condition where these functions can access conn->users and conn->hchan concurrently with l2cap_conn_del(). This can lead to use-after-free and list corruption bugs, as reported by syzbot. Fix this by changing l2cap_register_user() and l2cap_unregister_user() to use conn->lock instead of hci_dev_lock(), ensuring consistent locking for the l2cap_conn structure.
02KernelScan AI Analysis
Risk summary
Adjacent attackers within Bluetooth range can trigger a use-after-free condition in the L2CAP user registration system via a race condition between connection teardown and user registration/unregistration. This can lead to kernel memory corruption, information disclosure, and system crashes. Systems with Bluetooth enabled are at risk.
Vulnerability analysis
The vulnerability stems from inconsistent locking in L2CAP connection management. While l2cap_conn_del() uses conn->lock to protect access to the conn->users list, l2cap_register_user() and l2cap_unregister_user() used hci_dev_lock() instead. This creates a race condition where these functions can access conn->users and conn->hchan concurrently with l2cap_conn_del(), leading to use-after-free and list corruption. The fix standardizes locking by making all functions use conn->lock. The attack surface is Bluetooth L2CAP, reachable from adjacent attackers when Bluetooth is enabled and active.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.78 | c22a5e659959 |
| 6.14 | 6.14 | da3000cbe485 |
| 6.18 | 6.18.20 | 71030f3b3015 |
| 6.19 | 6.19.10 | 752a6c9596dd |
| 6.6 | 6.6.130 | 11a87dd5df42 |
| mainline | 7.0 | — |