Skip to main content

Linux Kernel EUVDEUVD-2026-39207

| CVE-2026-53256 HIGH
Use After Free (CWE-416)
2026-06-25 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-hq32-rppj-r4rv
8.0
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
8.0 HIGH
AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.1 HIGH

Adjacent Bluetooth vector (AV:A); race condition makes it high-complexity (AC:H); a local listener socket must exist so PR:L; kernel UAF yields high C/I/A.

3.1 AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
7.5 HIGH
AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jun 28, 2026 - 09:46 vuln.today
CVSS changed
Jun 28, 2026 - 08:22 NVD
8.0 (HIGH)
Patch available
Jun 25, 2026 - 10:32 EUVD
CVE Published
Jun 25, 2026 - 09:16 cve.org
HIGH 8.0
CVE Published
Jun 25, 2026 - 09:16 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

  1. Drop rfcomm_sk_list.lock 2. rfcomm_sock_shutdown()

without pinning parent. closes the listener.

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

bt_accept_enqueue(parent, unlinks and puts parent. sk, true).

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

AnalysisAI

Use-after-free in the Linux kernel's Bluetooth RFCOMM subsystem allows an attacker within Bluetooth range to corrupt kernel memory by racing an incoming RFCOMM connection against the close of a listener socket. The flaw lives in rfcomm_connect_ind(), which uses a listener socket returned by rfcomm_get_sock_by_channel() after the protecting list lock is dropped and without taking a reference, so a concurrent rfcomm_sock_release() can free the parent socket before it is locked and a child is enqueued. KASAN confirmed a slab-use-after-free in lock_sock_nested(); EPSS is low (0.17%, 7th percentile), there is no public exploit identified at time of analysis, and the issue is not listed in CISA KEV.

Technical ContextAI

RFCOMM is the Bluetooth serial-port-emulation protocol layered over L2CAP, used by profiles such as SPP, DUN, and headset/handsfree control channels. When a remote peer initiates a connection, rfcomm_connect_ind() looks up the matching listening socket via rfcomm_get_sock_by_channel(), which walks rfcomm_sk_list under rfcomm_sk_list.lock. The bug is a classic reference-counting/locking error (CWE-416 use-after-free arising from a CWE-362 time-of-check/time-of-use race; the feed lists CWE as N/A): the helper returns the chosen listener after releasing the list lock without taking sock_hold(), so nothing pins the parent. The connect path then calls lock_sock(parent), bt_accept_enqueue(parent, sk, true), reads parent flags, and may invoke sk_state_change(). If a concurrent close()/rfcomm_sock_shutdown()/rfcomm_sock_kill() unlinks and puts the parent in the window after the lock is dropped, the parent socket object can be freed and the connect path dereferences freed slab memory.

RemediationAI

Apply the vendor-released kernel patch for your branch: upgrade to at least 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13, or 7.1 (or the equivalent distribution-backported package), which adds a sock_hold() on the listener before leaving rfcomm_sk_list.lock, rechecks BT_LISTEN under lock_sock(), caches the deferred-setup bit while the parent is locked, and drops the reference after the last use. The fix commits are at https://git.kernel.org/stable/c/ (e.g. 43c441edacf953b39517a44f5e5e10a93618b226) and the tracking record is https://nvd.nist.gov/vuln/detail/CVE-2026-53256. Where immediate patching is not possible, reduce exposure by disabling Bluetooth if unused (rfkill block bluetooth or unloading the rfcomm/bluetooth modules), or by stopping applications that open RFCOMM listening sockets (SPP/DUN/PAN serial services) - the trade-off is loss of all Bluetooth serial functionality. Restricting which devices can pair/connect and keeping the adapter non-discoverable narrows the adjacent attack surface but does not eliminate the underlying race.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.177 Container suse/sl-micro/6.1/base-os-container:2.2.1-5.155 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.206 Container suse/sl-micro/6.1/rt-os-container:2.2.1-5.152 Affected
Image SLES15-SP7-Azure-3P Image SLES15-SP7-Azure-Basic Image SLES15-SP7-Azure-Standard Image SLES15-SP7-HPC-Azure Affected
Image SLES15-SP7-BYOS-Azure Image SLES15-SP7-BYOS-GCE Image SLES15-SP7-CHOST-BYOS-Aliyun Image SLES15-SP7-CHOST-BYOS-Azure Image SLES15-SP7-CHOST-BYOS-EC2 Image SLES15-SP7-CHOST-BYOS-GCE Image SLES15-SP7-CHOST-BYOS-GDC Image SLES15-SP7-CHOST-BYOS-SAP-CCloud Image SLES15-SP7-EC2 Image SLES15-SP7-EC2-ECS-HVM Image SLES15-SP7-GCE Image SLES15-SP7-HPC-BYOS-Azure Image SLES15-SP7-HPC-BYOS-EC2 Image SLES15-SP7-HPC-BYOS-GCE Image SLES15-SP7-Hardened-BYOS-Azure Image SLES15-SP7-Hardened-BYOS-EC2 Image SLES15-SP7-Hardened-BYOS-GCE Image SLES15-SP7-SAPCAL-Azure Image SLES15-SP7-SAPCAL-EC2 Image SLES15-SP7-SAPCAL-GCE Affected
Image SLES15-SP7-SAP-Azure Image SLES15-SP7-SAP-Azure-3P Image SLES15-SP7-SAP-BYOS-Azure Image SLES15-SP7-SAP-BYOS-EC2 Image SLES15-SP7-SAP-BYOS-GCE Image SLES15-SP7-SAP-EC2 Image SLES15-SP7-SAP-GCE Image SLES15-SP7-SAP-Hardened-Azure Image SLES15-SP7-SAP-Hardened-BYOS-Azure Image SLES15-SP7-SAP-Hardened-BYOS-EC2 Image SLES15-SP7-SAP-Hardened-BYOS-GCE Image SLES15-SP7-SAP-Hardened-GCE Affected

Share

EUVD-2026-39207 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy