PT-2026-121992
CVE-2026-99015
·
Published
2026-10-23
·
Updated
2026-10-23
Description by
Score
N/A
Not availableNo 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: hci sock: Serialize dead-device detachment
Rebinding an HCI socket after its controller is unregistered can race
monitor control replay and crash the kernel. hci sock bind() clears
hci pi(sk)->hdev and drops the device reference under only the socket
lock, whereas send monitor control replay() holds hci sk list.lock for
reading.
Replay can observe a non-NULL hdev, then bind can clear it and drop the
last reference before create monitor ctrl open() reads hdev->id. This
can cause a NULL pointer dereference if the pointer is reloaded, or a
use-after-free if the old pointer is retained.
The kernel reported:
KASAN: null-ptr-deref in range [0x0000000000000068-0x000000000000006f]
RIP: 0010:create monitor ctrl open+0x579/0x800
Call Trace:
hci sock bind+0xd96/0x1190
sys bind+0x166/0x200
x64 sys bind+0x6d/0xb0
do syscall 64+0xdd/0x4a0
entry SYSCALL 64 after hwframe+0x77/0x7f
The same missing serialization lets hci send to sock() select a socket
for the old device and queue its frame after bind has detached the socket
or installed a new binding.
Take hci sk list.lock for writing when clearing the device pointer and
resetting the socket state. This waits for existing replay and delivery
readers to finish before detachment and prevents later readers from
using the old binding. Keep hci dev put() outside the critical section
because the final device release can sleep.
Found an issue in the description? Have something to add? Feel free to write us 👾