← All Advisories
Reported from OT-Advisories.com as of

Linux Kernel Bluetooth stack Use-After-Free Rated 8.0 CVSS

Last refreshed2026-10-15

Status: UPDATED  |  Advisory ID: CVE-2026-53256

Key Details

CVECVE-2026-53256
CVSS Score / Version
8.0 (High) / CVSS v3.1
Updated2026-10-15
CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Prose
attack vector is adjacent; attack complexity is low; privileges required is low; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected products
Linux Kernel and Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
Classified as
CWE-416 (Use After Free)
Exploitation prediction (EPSS)
0.26% probability of exploitation in the next 30 days (17% percentile) -- FIRST.org's EPSS model.

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SiemensSIMATIC S7-1500 TM MFP - GNU/Linux subsystem
SubsystemsControllers & Field I/O, OT Supporting Infrastructure
SectorsAll Sectors

What to Know

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

What to Do

Monitor Linux's and Siemens's web pages for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-53256
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-53256
Report compilation © 2026 OT-Advisories.com  ·  CC BY 4.0  ·  Source materials remain the property of their respective publishers as cited.