CVE-2026-53256

Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()

HIGH
8
CVSS Score
Published: June 25, 2026 at 08:39 AM UTC
Updated: October 19, 2026 at 08:19 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH8
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

Description

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().

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

2.6.12.1 ≤ v < 5.10.2595.11 ≤ v < 5.15.2105.16 ≤ v < 6.1.1766.13 ≤ v < 6.18.366.19 ≤ v < 7.0.136.2 ≤ v < 6.6.1436.7 ≤ v < 6.12.941da177e4c3f41524e886b7f1b8a0c1fc7321cac22.6.122.6.12 rc22.6.12 rc32.6.12 rc42.6.12 rc57.17.1 rc17.1 rc27.1 rc37.1 rc47.1 rc57.1 rc6
Vendor states this is fixed in 1f73f92f66251065a5f39b09a47cf05ea14d3107 (fixed)
Vendor states this is fixed in 43c441edacf953b39517a44f5e5e10a93618b226 (fixed)
Vendor states this is fixed in 6f4462d12133106460d7c046b95aad2491e3fddf (fixed)
Vendor states this is fixed in 8802413ce63175fb522a2bd609fb043a3550c720 (fixed)
Vendor states this is fixed in a07d741c077d4e34b16458241a94d29039386553 (fixed)
Vendor states this is fixed in b0e33e409715c617e2a20f46f99aa5403a14dfda (fixed)
Vendor states this is fixed in de31973ef00e5aa55496f84cf6a44bb157a34e02 (fixed)
Vendor states this is fixed in f5ec76bdbeb80f75ad0be204371afffee0f8fac8 (fixed)
Vendor states this is fixed in 2.6.12 (unaffected)
Vendor states this is fixed in 5.10.259 (unaffected)
Vendor states this is fixed in 5.15.210 (unaffected)
Vendor states this is fixed in 6.1.176 (unaffected)
Vendor states this is fixed in 6.12.94 (unaffected)
Vendor states this is fixed in 6.18.36 (unaffected)
Vendor states this is fixed in 6.6.143 (unaffected)
Vendor states this is fixed in 7.0.13 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

8HIGHLinux
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card