Skip to main content
← All vulnerabilities
CVE-2026-97977

Bluetooth: btusb: Fix UAF of btusb_data by rx_work

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.1.189, 6.6.158, 6.12.111, 6.18.53, 7.2.7
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btusb: Fix UAF of btusb_data by rx_work btusb_close() and btusb_flush() cancel data->rx_work with the asynchronous cancel_delayed_work(), so if btusb_rx_work() is already running on another CPU it keeps running after the cancel returns. btusb_disconnect() calls hci_unregister_dev(), which invokes btusb_close(), and then frees the btusb_data. A still running btusb_rx_work() then dereferences the freed data: while ((skb = skb_dequeue(&data->acl_q))) data->recv_acl(data->hdev, skb); Use cancel_delayed_work_sync() instead. In btusb_close() the cancel also has to happen after btusb_stop_traffic(), otherwise an URB completion racing with the cancel can requeue the work right after it has been waited for.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in fc654a72a8d979db15e2773a481e931abaf5a9e8; From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in 5242050195a711e9cd6a9935f689ab6656b94a91; From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in 472d005622525b7be155cac99dde2252b0163bd1; From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in 93b59937bda3fffc6386c79f5544a39bc680c8e8; From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in fa391adb9c755515a89993634745e9079e5ef37c; From 800fe5ec302e1ebbf5e3f891f886deecd49c7132 · fixed in 1c12c3117639e78940959d956519c758c57d0849

  • Linux Linux

    5.17

  • KernelLinux

    From 5.17.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7

References 6

git.kernel.org