---
id: CVE-2026-99014
title: 'Bluetooth: hci_sync: Fix command skb lifetime during scan setup'
summary: |-
  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 looku…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= de3c85d321bfb85b7742a6cfab95d680da3e26b1 <
    f01cbddfb4273fcc9a786d13b0a2525029023605
  - >-
    Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 <
    119ba8070b3f112dd36c897f4f70ea5bb7d370b8
  - >-
    Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 <
    7db33b36213a3a1a40940c009ddac30670b55922
  - >-
    Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 <
    762850c203fab1190ad6a3de41cd51920b22236d
  - >-
    Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 <
    9af12272061d206af8bc3e40215cb694421ab73a
  - Linux 7a54f8314584f78fb0557153b1059924249ef628
  - Linux >= 6.6.28 < 6.6.160
  - Linux >= 6.8.7 < 6.9
  - Linux 6.9
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:20:39.617Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99014'
references:
  - url: 'https://git.kernel.org/stable/c/f01cbddfb4273fcc9a786d13b0a2525029023605'
  - url: 'https://git.kernel.org/stable/c/119ba8070b3f112dd36c897f4f70ea5bb7d370b8'
  - url: 'https://git.kernel.org/stable/c/7db33b36213a3a1a40940c009ddac30670b55922'
  - url: 'https://git.kernel.org/stable/c/762850c203fab1190ad6a3de41cd51920b22236d'
  - url: 'https://git.kernel.org/stable/c/9af12272061d206af8bc3e40215cb694421ab73a'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.540Z'
---

## Overview

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.

## Affected

- `Linux >= de3c85d321bfb85b7742a6cfab95d680da3e26b1 < f01cbddfb4273fcc9a786d13b0a2525029023605`
- `Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 < 119ba8070b3f112dd36c897f4f70ea5bb7d370b8`
- `Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 < 7db33b36213a3a1a40940c009ddac30670b55922`
- `Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 < 762850c203fab1190ad6a3de41cd51920b22236d`
- `Linux >= 22cbf4f84c00da64196eb15034feee868e63eef0 < 9af12272061d206af8bc3e40215cb694421ab73a`
- `Linux 7a54f8314584f78fb0557153b1059924249ef628`
- `Linux >= 6.6.28 < 6.6.160`
- `Linux >= 6.8.7 < 6.9`
- `Linux 6.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
