ZeroHour

CVE-2026-89569

mass

Use-After-Free in Linux Kernel Bluetooth RFCOMM Security Confirmation Handler

CVSS 3.1
8.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's Bluetooth RFCOMM subsystem contains a use-after-free in rfcomm_security_cfm(), which looks up an RFCOMM session and walks its data-link connection (DLC) list without holding rfcomm_mutex. A remote Bluetooth peer within radio range can trigger the flaw by racing a security/encryption confirmation event (processed in hci_rx_work) against RFCOMM session teardown by the krfcommd worker thread, causing the callback to read a freed session and touch freed DLC structures while updating flags or timers. Successful exploitation of this kernel memory corruption can yield high impact to confidentiality, integrity, and availability (CVSS 3.1: 8.8, adjacent-network vector over Bluetooth), including kernel crashes or potential privilege escalation to ring 0. Any device running an affected kernel with Bluetooth Classic (RFCOMM) enabled is in scope, including Linux laptops, embedded, and IoT systems. No public proof-of-concept exists and the issue is not in CISA's KEV catalog, so exploitation is currently considered theoretical.

What to do: Apply kernel updates as soon as your distribution ships a build containing this RFCOMM fix and reboot into the patched kernel. If patching is not immediately possible, mitigate by disabling Bluetooth Classic where it is not required (e.g., blacklisting the rfcomm module, powering off or physically removing Bluetooth adapters, or blocking Bluetooth in BIOS/firmware). Audit logs for kASAN slab-use-after-free reports referencing rfcomm_security_cfm or unexpected kernel panics near Bluetooth activity, and prioritize patching devices in Bluetooth-reachable locations such as laptops and kiosks in public or shared spaces.

Affected
Linux kernel
Estimated exposure
massOn the order of hundreds of millions to billions of Bluetooth-enabled Linux-based devices (laptops, servers with BT adapters, embedded/IoT units, and… — Bluetooth is standard hardware on most Linux laptops and pervasive in embedded/IoT and Android devices that ship mainline-derived kernels, and RFCOMM is compiled in or loadable in default kernel configurations, so the potentially affected…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: serialize security confirmation handling rfcomm_security_cfm() looks up a session on session_list and then walks its DLC list without holding rfcomm_mutex. Since RFCOMM session teardown uses rfcomm_mutex, krfcommd can close and free the same session and DLCs concurrently: hci_rx_work krfcommd ----------- --------- rfcomm_session_get() rfcomm_lock() rfcomm_session_close() rfcomm_dlc_unlink() rfcomm_session_del() kfree(s) rfcomm_unlock() walk s->dlcs The callback can then read a freed session list head and touch freed DLCs while updating their flags or timers. Serialize the session lookup and DLC traversal in rfcomm_security_cfm() with rfcomm_mutex. This matches the existing RFCOMM session lifetime rules and prevents concurrent rfcomm_session_del() / rfcomm_dlc_unlink() from tearing the objects down while the callback is using them. KASAN reported: BUG: KASAN: slab-use-after-free in rfcomm_security_cfm+0x41c/0x440 Read of size 8 at addr ffff888111fb3960 by task kworker/u17:1/89 Workqueue: hci0 hci_rx_work Call Trace: rfcomm_security_cfm+0x41c/0x440 hci_encrypt_cfm+0x139/0x590 hci_encrypt_change_evt+0x37b/0xc40 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730 Allocated by task 69: rfcomm_session_add+0x9e/0x2f0 rfcomm_run+0x44b/0x41e0 Freed by task 69: kfree+0x131/0x3c0 rfcomm_session_del+0x188/0x220 rfcomm_run+0x1985/0x41e0

Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.