CVE-2026-74509: Bluetooth: hci_sync: Fix advertising data UAFs

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081542-CVE-2026-74509-eb82@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_sync: Fix advertising data UAFs

hci_find_adv_instance() returns an adv_info pointer that is valid only
while hdev->lock is held.  The advertising command-sync paths perform
instance lookups without that lock and, in some cases, retain the pointer
while waiting for a controller response.

An advertising termination event can therefore interleave as follows:

  hci_cmd_sync_work                 hci_rx_work
  hci_find_adv_instance()
  __hci_cmd_sync_status()
    wait for controller reply       hci_dev_lock()
                                    hci_remove_adv_instance()
                                      kfree(adv)
  adv->scan_rsp_changed = false

KASAN reported:

  BUG: KASAN: slab-use-after-free in hci_set_ext_scan_rsp_data_sync+0x2e1/0x300
  Write of size 1 at addr ffff88810a45d21d by task kworker/u17:0/88
  Workqueue: hci0 hci_cmd_sync_work
  Call Trace:
   hci_set_ext_scan_rsp_data_sync+0x2e1/0x300
   hci_schedule_adv_instance_sync+0x390/0x4c0
   hci_cmd_sync_work+0x173/0x300
  Allocated by task 87:
   hci_add_adv_instance+0x538/0xac0
   add_advertising+0x885/0x1160
  Freed by task 89:
   kfree+0x131/0x3c0
   hci_remove_adv_instance+0x1d8/0x3b0
   hci_le_ext_adv_term_evt+0x17b/0x730

Protect the instance lookup and payload construction in the extended
advertising, scan response, and periodic advertising data paths.  Snapshot
the advertising parameters under hdev->lock, but release the lock before
waiting for the controller.

Clear advertising-data dirty bits before issuing their commands and
restore them after a failure using a fresh lookup.  Likewise, update the
reported transmit power through a fresh lookup after the parameter command
completes.  No adv_info pointer then survives an HCI command wait.

The Linux kernel CVE team has assigned CVE-2026-74509 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.17 with commit cba6b758711cab946c787f7c15be92cc749b8e1f and fixed in 6.12.103 with commit 95cdcd8c82a501931fd3ae9b3811b0b6da167e94
	Issue introduced in 5.17 with commit cba6b758711cab946c787f7c15be92cc749b8e1f and fixed in 6.18.44 with commit eb1d8318764de7216e6dbba29a24d69f7ce51348
	Issue introduced in 5.17 with commit cba6b758711cab946c787f7c15be92cc749b8e1f and fixed in 7.1.8 with commit b16ebdbebd2d37f4cdc590bc3e9db71fe90350a3
	Issue introduced in 5.17 with commit cba6b758711cab946c787f7c15be92cc749b8e1f and fixed in 7.2-rc6 with commit cdc36db204ffd97b947d64374cf23a210dc74777
	Issue introduced in 5.15.210 with commit 42fe380baaaccbe635c34ca07b29d19b9ec2498d

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-74509
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/bluetooth/hci_sync.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/95cdcd8c82a501931fd3ae9b3811b0b6da167e94
	https://git.kernel.org/stable/c/eb1d8318764de7216e6dbba29a24d69f7ce51348
	https://git.kernel.org/stable/c/b16ebdbebd2d37f4cdc590bc3e9db71fe90350a3
	https://git.kernel.org/stable/c/cdc36db204ffd97b947d64374cf23a210dc74777
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.