Bluetooth: hci_sync: Fix advertising data UAFs
Summary
| CVE | CVE-2026-74509 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-08-15 13:17:55 UTC |
| Updated | 2026-08-15 13:17:55 UTC |
| 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. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected cba6b758711cab946c787f7c15be92cc749b8e1f 95cdcd8c82a501931fd3ae9b3811b0b6da167e94 git |
Not specified |
| CNA |
Linux |
Linux |
affected cba6b758711cab946c787f7c15be92cc749b8e1f eb1d8318764de7216e6dbba29a24d69f7ce51348 git |
Not specified |
| CNA |
Linux |
Linux |
affected cba6b758711cab946c787f7c15be92cc749b8e1f b16ebdbebd2d37f4cdc590bc3e9db71fe90350a3 git |
Not specified |
| CNA |
Linux |
Linux |
affected cba6b758711cab946c787f7c15be92cc749b8e1f cdc36db204ffd97b947d64374cf23a210dc74777 git |
Not specified |
| CNA |
Linux |
Linux |
affected 42fe380baaaccbe635c34ca07b29d19b9ec2498d git |
Not specified |
| CNA |
Linux |
Linux |
affected 5.15.210 5.16 semver |
Not specified |
| CNA |
Linux |
Linux |
affected 5.17 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.17 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.12.103 6.12.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.44 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.1.8 7.1.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2-rc6 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/cdc36db204ffd97b947d64374cf23a210dc74777 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/95cdcd8c82a501931fd3ae9b3811b0b6da167e94 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/b16ebdbebd2d37f4cdc590bc3e9db71fe90350a3 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/eb1d8318764de7216e6dbba29a24d69f7ce51348 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.