CVE-2026-80762

Bluetooth: hci_sync: Fix accept list UAF during suspend

State
Published
Severity
Not scored
Published
Sep 4, 2026
Updated
Oct 19, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

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

Bluetooth: hci_sync: Fix accept list UAF during suspend

hci_update_event_filter_sync() walks hdev->accept_list while sending a synchronous HCI command for each remote-wakeup device. The suspend path holds hdev->req_lock, but accept-list updates are serialized by hdev->lock. Consequently, remove_device() can free the current list entry during the controller wait.

The following interleaving causes the use-after-free:

hci_update_event_filter_sync() remove_device() fetch accept-list entry hci_set_event_filter_sync() wait for controller response hci_dev_lock() list_del() kfree() hci_dev_unlock() read the freed list.next

KASAN reported:

BUG: KASAN: slab-use-after-free in hci_suspend_sync+0x835/0x910 Read of size 8 at addr ffff88810bec8440 by task kworker/0:1/10 Workqueue: events vhci_suspend_work Call Trace: hci_suspend_sync+0x835/0x910 hci_suspend_dev+0x182/0x450 process_one_work+0x661/0x1090 worker_thread+0x45b/0xd10

Allocated by task 86: hci_bdaddr_list_add_with_flags+0x1a8/0x400 add_device+0x381/0x820 hci_sock_sendmsg+0x1033/0x1ea0

Freed by task 91: kfree+0x131/0x3c0 remove_device+0x429/0xb70 hci_sock_sendmsg+0x1033/0x1ea0

Snapshot the remote-wakeup addresses under hdev->lock. Release the lock before sending HCI commands. Clear the controller event filter before building the snapshot, and skip allocation and the second list traversal when there are no matching entries. This preserves the original filter and scan-state updates without retaining an accept-list node across a controller wait.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before bb5f5414d1a6272a16f68684e998f4063dd19f57Affected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before b5181516a9f5c2fdb3271cdad72a5b16c6963a44Affected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before 87ad116ac3abc6f2ce2b5b6c488f633003581eeeAffected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before fe93a697a7a92fa9adf78c9ff67a10db3193290cAffected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before 95bb57bc11a91caf042ad00fca85e480d3fda37fAffected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before 29c59212a507804d7616b8abf491d30b4ab8e75fAffected
  • 182ee45da083db4e3e621541ccf255bfa9652214 to before f57b399c4fa1501b2d5451f52d861ece86bcf3dbAffected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.187 through 6.1.*Not affected
  • 6.6.156 through 6.6.*Not affected
  • 6.12.108 through 6.12.*Not affected
  • 6.18.47 through 6.18.*Not affected
  • 7.1.11 through 7.1.*Not affected
  • 7.2.1 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.