CVE-2024-36013

Bluetooth: L2CAP: Fix slab-use-after-free in l2cap_connect()

State
Published
Severity
8.8 High
Published
May 23, 2024
Updated
Aug 5, 2026
Reserved
May 17, 2024

Read the record on cve.org

Description

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

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
3.16.8 MediumCVSS:3.1/AV:A/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 73ffa904b78287f6acf8797e040150aa26a4af4a to before 8629a65a48890769c47ebc9b6e57c02a80a8975eAffected
  • 73ffa904b78287f6acf8797e040150aa26a4af4a to before cfe560c7050bfb37b0d2491bbe7cd8b59e77fdc5Affected
  • 73ffa904b78287f6acf8797e040150aa26a4af4a to before 826af9d2f69567c646ff46d10393d47e30ad23c6Affected
  • 73ffa904b78287f6acf8797e040150aa26a4af4a to before 4d7b41c0e43995b0e992b9f8903109275744b658Affected
LinuxLinux
  • 3.0Affected
  • before 3.0Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.32 through 6.6.*Not affected
  • 6.8.11 through 6.8.*Not affected
  • 6.9 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.