PT-2026-116957 · Linux · Linux

CVE-2026-98738

·

Published

2026-10-18

·

Updated

2026-10-18

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: Serialize SMP remote OOB data access
build pairing cmd() looks up remote OOB data and copies its contents without holding hdev->lock, which serializes the list's writers. After SMP finds an entry, a concurrent management Remove Remote OOB Data command can unlink and free it before SMP reads its present flag or copies its random and confirmation values. Removal can also invalidate an entry while the lookup is still traversing the list.
KASAN reported:
BUG: KASAN: slab-use-after-free in build pairing cmd+0x948/0x9b0 Call Trace: build pairing cmd+0x948/0x9b0 smp recv cb+0x459f/0x8110 l2cap recv frame+0xf14/0x9190 l2cap recv acldata+0xa64/0xd40 hci rx work+0x4ca/0x730
Allocated by task 87: hci add remote oob data+0x11d/0x530 add remote oob data+0x282/0x400 hci sock sendmsg+0x1033/0x1ea0
Freed by task 93: hci remote oob data clear+0x108/0x1c0 remove remote oob data+0x198/0x220 hci sock sendmsg+0x1033/0x1ea0
Taking hdev->lock in build pairing cmd() would recurse for callers that already hold it and invert the device-to-L2CAP lock order on the receive path. Add a per-device remote oob lock instead, held across the SMP lookup and copies and by the add, remove and clear helpers. Cover initialization and in-place updates as well, so SMP cannot read partially initialized or updated OOB values. Release the mutex on allocation failure, preserving the existing error return.
The new critical sections acquire no device, connection or channel locks. Writers retain their existing hdev->lock protection, which continues to serialize the other readers without changing their locking or behavior.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-98738

Affected Products

Linux