CVE-2026-53256CWE-416

CVE-2026-53256

High · published June 25, 2026

CVSS v3.1
8.0
EPSS
0%
Percentile
17.2
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()

rfcomm_get_sock_by_channel() scans rfcomm_sk_list under the list lock,

but returns the selected listener after dropping that lock without

taking a reference. rfcomm_connect_ind() then locks the listener,

queues a child socket on it, and may notify it after unlocking it.

The buggy scenario involves two paths, with each column showing the

order within that path:

rfcomm_connect_ind(): listener close:

1. Find parent in 1. close() enters

rfcomm_get_sock_by_channel() rfcomm_sock_release().

2. Drop rfcomm_sk_list.lock 2. rfcomm_sock_shutdown()

without pinning parent. closes the listener.

3. Call lock_sock(parent) and 3. rfcomm_sock_kill()

bt_accept_enqueue(parent, unlinks and puts parent.

sk, true).

4. Read parent flags and may 4. parent can be freed.

call sk_state_change().

If close wins the race, parent can be freed before

rfcomm_connect_ind() reaches lock_sock(), bt_accept_enqueue(), or the

deferred-setup callback.

Take a reference on the listener before leaving rfcomm_sk_list.lock.

After lock_sock() succeeds, recheck that it is still in BT_LISTEN

before queueing a child, cache the deferred-setup bit while the parent

is locked, and drop the reference after the last parent use.

KASAN reported a slab-use-after-free in lock_sock_nested() from

rfcomm_connect_ind(), with the freeing stack going through

rfcomm_sock_kill() and rfcomm_sock_release().

The record
Technical detail
CVSS v3.1
8.0 · HIGH
Vector
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00263 · 17.2th percentile
Weakness
CWE-416 · Use After Free
Published
2026-06-25T13:16Z
Affected products (18)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.12.1, < 5.10.2595.10.259
linux/linux_kernel≥ 5.11, < 5.15.2105.15.210
linux/linux_kernel≥ 5.16, < 6.1.1766.1.176
linux/linux_kernel≥ 6.2, < 6.6.1436.6.143
linux/linux_kernel≥ 6.7, < 6.12.946.12.94
linux/linux_kernel≥ 6.13, < 6.18.366.18.36
linux/linux_kernel≥ 6.19, < 7.0.137.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 25 JUN 08:39Z
    Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()
    cvelistv5