Description
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_sock: Prevent race in socket write iter and sock bind
There is a potential race condition between sock bind and socket write iter. bind may free the same cmd via mgmt_pending before write iter sends the cmd, just as syzbot reported in UAF[1].
Here we use hci_dev_lock to synchronize the two, thereby avoiding the UAF mentioned in [1].
[1] syzbot reported: BUG: KASAN: slab-use-after-free in mgmt_pending_remove+0x3b/0x210 net/bluetooth/mgmt_util.c:316 Read of size 8 at addr ffff888077164818 by task syz.0.17/5989 Call Trace: mgmt_pending_remove+0x3b/0x210 net/bluetooth/mgmt_util.c:316 set_link_security+0x5c2/0x710 net/bluetooth/mgmt.c:1918 hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719 hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg+0x21c/0x270 net/socket.c:742 sock_write_iter+0x279/0x360 net/socket.c:1195
Allocated by task 5989: mgmt_pending_add+0x35/0x140 net/bluetooth/mgmt_util.c:296 set_link_security+0x557/0x710 net/bluetooth/mgmt.c:1910 hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719 hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg+0x21c/0x270 net/socket.c:742 sock_write_iter+0x279/0x360 net/socket.c:1195
Freed by task 5991: mgmt_pending_free net/bluetooth/mgmt_util.c:311 [inline] mgmt_pending_foreach+0x30d/0x380 net/bluetooth/mgmt_util.c:257 mgmt_index_removed+0x112/0x2f0 net/bluetooth/mgmt.c:9477 hci_sock_bind+0xbe9/0x1000 net/bluetooth/hci_sock.c:1314
Metrics
No CVSS score has been published yet.
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 7b5958332f20dc66b19be564c402dbc21b927a81, < 7344feaed3c8aa46d397984ae855e6026d3c3e95; >= bdd56875c6926d8009914f427df71797693e90d4, < fe68510fc99bb4b88c9c611f83699749002d515a; >= 4e83f2dbb2bf677e614109df24426c4dded472d4, < e90c05fc5bbea956450a05cc3b36b8fa29cf195e; >= 6fe26f694c824b8a4dbf50c635bee1302e3f099c, < 69fcb0344bc0dd5b13d7e4e98f8b6bf25a6d4ff7; >= 6fe26f694c824b8a4dbf50c635bee1302e3f099c, < 89bb613511cc21ed5ba6bddc1c9b9ae9c0dad392; d7882db79135c829a922daf3571f33ea1e056ae3; >= 6.6.94, < 6.6.119; >= 6.12.34, < 6.12.61; >= 6.15.3, < 6.16 |
| Linux | Linux | 6.16 |
References
- https://git.kernel.org/stable/c/69fcb0344bc0dd5b13d7e4e98f8b6bf25a6d4ff7
- https://git.kernel.org/stable/c/7344feaed3c8aa46d397984ae855e6026d3c3e95
- https://git.kernel.org/stable/c/89bb613511cc21ed5ba6bddc1c9b9ae9c0dad392
- https://git.kernel.org/stable/c/e90c05fc5bbea956450a05cc3b36b8fa29cf195e
- https://git.kernel.org/stable/c/fe68510fc99bb4b88c9c611f83699749002d515a
Timeline
- Published
- Dec 16, 2025
- Last modified
- Oct 14, 2026
- NVD status
- Deferred