CVE-2026-98738: Bluetooth: Serialize SMP remote OOB data access
Bluetooth: Serialize SMP remote OOB data access
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
azurelinux/kernelto a version that resolves this vulnerability.Fixed in 6.6.161.1-1 - Configuration
Add a per-device remote_oob_lock to serialize remote OOB data access. Hold it across SMP lookup and copying of the present flag, random value, and confirmation value, as well as during add, remove, clear, initialization, and in-place updates. Release the mutex on allocation failure while preserving the existing error return.
Linux kernel Bluetooth SMP remote OOB data handling remote_oob_lock = per-device mutex held across SMP lookup and copies, and by add, remove, clear, initialization, and in-place update helpers
Event History
Frequently Asked Questions
What conditions are required to trigger this issue?
A Bluetooth SMP pairing path must access stored remote out-of-band (OOB) data while a concurrent management Remove Remote OOB Data command removes that same entry. The race can occur during lookup or after lookup but before SMP reads and copies the entry fields.
Who is exposed to the race?
Systems using the Linux kernel Bluetooth stack with remote OOB data configured are exposed when pairing activity can overlap with management operations that remove remote OOB data. The issue is in shared per-device remote OOB data handling rather than a single pairing request alone.
What happens if the race is won?
The SMP pairing code can dereference remote OOB data after it has been unlinked and freed, causing a slab use-after-free. The provided report identifies the affected access in build_pairing_cmd() during the Bluetooth receive path.
How can administrators identify relevant activity before applying a fix?
Relevant evidence includes KASAN reports of a slab use-after-free in build_pairing_cmd(), with stack frames such as smp_recv_cb, l2cap_recv_frame, and hci_rx_work. Allocation and free traces may include hci_add_remote_oob_data and hci_remote_oob_data_clear respectively.