CVE-2024-36013
MediumCVSS 6.8Exploitation Probability (EPSS)
Low risk37th percentile - higher than 37% of all known CVEs
Summary
In the Linux kernel, a slab-use-after-free vulnerability was found in the Bluetooth L2CAP subsystem's l2cap_connect() function. The issue arises from an insufficiently extended critical section, allowing premature freeing of the chan structure before use. The patch extends the critical section and changes the return type to void to prevent pointer leaks.
Risk Assessment
This vulnerability can cause system crashes (kernel panic) or potentially lead to privilege escalation through memory corruption after free. Organizations using Bluetooth in Linux environments are exposed to local or remote attacks that may destabilize the system.
Recommendation
Immediately update the Linux kernel to a version containing the fix (e.g., 6.9 or later with appropriate backport). For production systems, monitor distribution channels for patches and deploy them promptly.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix slab-use-after-free in l2cap_connect() Extend a critical section to prevent chan from early freeing. Also make the l2cap_connect() return type void. Nothing is using the returned value but it is ugly to return a potentially freed pointer. Making it void will help with backports because earlier kernels did use the return value. Now the compile will break for kernels where this patch is not a complete fix. Call stack summary: [use] l2cap_bredr_sig_cmd l2cap_connect ┌ mutex_lock(&conn->chan_lock); │ chan = pchan->ops->new_connection(pchan); <- alloc chan │ __l2cap_chan_add(conn, chan); │ l2cap_chan_hold(chan); │ list_add(&chan->list, &conn->chan_l); ... (1) └ mutex_unlock(&conn->chan_lock); chan->conf_state ... (4) <- use after free [free] l2cap_conn_del ┌ mutex_lock(&conn->chan_lock); │ foreach chan in conn->chan_l: ... (2) │ l2cap_chan_put(chan); │ l2cap_chan_destroy │ kfree(chan) ... (3) <- chan freed └ mutex_unlock(&conn->chan_lock); ================================================================== BUG: KASAN: slab-use-after-free in instrument_atomic_read include/linux/instrumented.h:68 [inline] BUG: KASAN: slab-use-after-free in _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline] BUG: KASAN: slab-use-after-free in l2cap_connect+0xa67/0x11a0 net/bluetooth/l2cap_core.c:4260 Read of size 8 at addr ffff88810bf040a0 by task kworker/u3:1/311

