CVE-2026-97977

Bluetooth: btusb: Fix UAF of btusb_data by rx_work

Published Sep 25, 2026 CVSS 3.1 · 5.5 Medium EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

In the Linux kernel btusb driver a use‑after‑free can occur when a USB Bluetooth device is disconnected while its receive work is still running. Disconnecting frees the btusb_data structure, yet the pending rx_work continues to execute and dereferences the freed memory, resulting in a kernel crash or, if an attacker can influence the contents of that memory before it is reused, arbitrary code execution with kernel privileges.

Affected Systems

All Linux kernel distributions that ship the btusb driver before the patch commit (1c12c3117639e789) are affected. The flaw applies to any host that loads the btusb module to service a USB Bluetooth adapter, regardless of vendor.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity. The EPSS score of <1% shows a low exploitation probability and the vulnerability is not listed in the CISA KEV catalog. Based on the description, it is inferred that an attacker would need local access to a system with a USB Bluetooth adapter and the ability to trigger a disconnect while traffic is in flight. Exploitation would likely cause a kernel crash, and could permit privilege escalation if the attacker can control the memory reused after the free. The flaw requires local interaction and is not remotely exploitable.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes commit 1c12c3117639e789, which replaces cancel_delayed_work() with cancel_delayed_work_sync() and stops traffic before cancellation.
  • If an immediate kernel upgrade is not feasible, unload or disable the btusb module or stop the Bluetooth service to prevent use of the vulnerable driver.
  • As a temporary mitigation, ensure that USB Bluetooth adapters are disconnected only after confirming no active traffic; this reduces but does not eliminate the race condition.

Generated by OpenCVE AI on October 1, 2026 at 06:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DLA Debian DLA DLA-4841-1 linux security update
Debian DSA Debian DSA DSA-6528-1 linux security update
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9022-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9023-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9024-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9025-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9026-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9039-1 Linux kernel (Azure CVM) vulnerabilities
Ubuntu USN Ubuntu USN USN-9040-1 Linux kernel (Low Latency NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-9066-1 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-9091-1 Linux kernel (NVIDIA Tegra) vulnerabilities
History
Type Values Removed Values Added
Weaknesses CWE-416
Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate

Type Values Removed Values Added
Weaknesses CWE-416
Type Values Removed Values Added
Description 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.
Title Bluetooth: btusb: Fix UAF of btusb_data by rx_work
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses
  • CWE-825

    Expired Pointer Dereference

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 9:11 AM
Reserved
Sep 25, 2026, 10:18 AM
Status
Received
Published
Sep 25, 2026, 11:17 AM
Modified
Oct 19, 2026, 10:17 AM
Severity
Moderate
Public date
Sep 25, 2026, 12:00 AM