Linux kernel: Use-after-free in Bluetooth HCI sync scan setup
Summary
A race condition in the Linux kernel Bluetooth stack (hci_sync) can cause a use-after-free when passive LE scanning and periodic advertising sync are set up. A local user or process with low privileges could trigger it to crash the kernel or potentially escalate privileges. The attack requires local access and is not reachable remotely over the network.
Affected
- Linux kernel versions from 6.6.28 to before 6.6.160 (per affected-range data)
- Linux kernel versions from 6.8.7 to before 6.9 (per affected-range data)
- Other affected ranges per the kernel CNA record; ranges differ between sources and are unverified
- Unknown: exact patched build numbers for your distribution
Fixed in
- Upstream stable fix commits: f01cbddfb4273fcc9a786d13b0a2525029023605, 119ba8070b3f112dd36c897f4f70ea5bb7d370b8, 7db33b36213a3a1a40940c009ddac30670b55922, 762850c203fab1190ad6a3de41cd51920b22236d, 9af12272061d206af8bc3e40215cb694421ab73a
- Fixed kernel releases per OSV: 6.6.160, 6.12.114, 6.18.57, 7.2.11
- Unknown: distribution kernel packages containing the fix
Workaround
- On Linux hosts where Bluetooth is not needed, unload or blacklist the Bluetooth kernel modules until a patched kernel is installed (not a vendor-provided measure)
- No vendor-specific workaround known
Exploitation
- No known active exploitation; CISA KEV status: not listed
- No public proof-of-concept found in the research
- Local attack vector with low privileges required, no user interaction
Our recommendation
- Install the kernel update from your Linux distribution once available, then reboot
- Prioritise multi-user Linux servers, CI runners and workstations where untrusted code runs
- Blacklist Bluetooth modules on hosts that do not need Bluetooth
- Check your distribution's security tracker, as Ubuntu lists the CVE as needing evaluation
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- Linux kernel stable commit 119ba80 git.kernel.org
- Linux kernel stable commit 762850c git.kernel.org
- Linux kernel stable commit 7db33b3 git.kernel.org
- Linux kernel stable commit 9af1227 git.kernel.org
- Linux kernel stable commit f01cbdd git.kernel.org
- Ubuntu security notice CVE-2026-99014 ubuntu.com
- OSV CVE-2026-99014 osv.dev
- bluez bluetooth-next PR #858 github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 22:27.
Original description (NVD)
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_sync: Fix command skb lifetime during scan setup During PA sync scan setup, hci_le_set_ext_scan_param_sync() gets the address used for the PA_LINK lookup from hci_sent_cmd_data(). The returned pointer borrows storage from sent_cmd or req_skb, without holding a reference to either skb. The scan worker runs on req_workqueue while hci_cmd_work() runs on the separate device workqueue. After the scan worker loads sent_cmd, the command worker can free and replace it before hci_sent_cmd_data() dereferences the skb. The command payload can also be freed between returning from the helper and comparing the address. The connection lookup's RCU critical section does not protect the command skb. KASAN reported: BUG: KASAN: slab-use-after-free in hci_sent_cmd_data+0x27c/0x2f0 Workqueue: hci0 hci_cmd_sync_work Call Trace: hci_sent_cmd_data+0x27c/0x2f0 hci_le_set_scan_param_sync+0x43a/0x850 hci_passive_scan_sync+0xb09/0x1460 hci_update_passive_scan_sync+0x47c/0x6e0 hci_le_pa_create_sync+0x200/0xa70 hci_cmd_sync_work+0x13c/0x290 Allocated by task 95: skb_clone+0x13f/0x340 hci_cmd_work+0x2a9/0x7e0 Freed by task 95: kmem_cache_free+0xba/0x3a0 hci_cmd_work+0x29c/0x7e0 Use hdev->lock to serialize the address snapshot with sent_cmd replacement. Protect req_skb replacement and completion cleanup with the same lock because the helper falls back to that skb. Copy the address before releasing the lock and use the copy for the existing RCU-protected connection lookup. Release the mutex before sending or waiting for commands, preserving the lookup and completion ordering.
NVD references (5)
- https://git.kernel.org/stable/c/119ba8070b3f112dd36c897f4f70ea5bb7d370b8
- https://git.kernel.org/stable/c/762850c203fab1190ad6a3de41cd51920b22236d
- https://git.kernel.org/stable/c/7db33b36213a3a1a40940c009ddac30670b55922
- https://git.kernel.org/stable/c/9af12272061d206af8bc3e40215cb694421ab73a
- https://git.kernel.org/stable/c/f01cbddfb4273fcc9a786d13b0a2525029023605
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
