Commit ef357dd
committed
Bluetooth: af_bluetooth: Fix deadlock
jira VULN-8866
cve-bf CVE-2023-51779
commit-author Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
commit f7b94bd
Attemting to do sock_lock on .recvmsg may cause a deadlock as shown
bellow, so instead of using sock_sock this uses sk_receive_queue.lock
on bt_sock_ioctl to avoid the UAF:
INFO: task kworker/u9:1:121 blocked for more than 30 seconds.
Not tainted 6.7.6-lemon #183
Workqueue: hci0 hci_rx_work
Call Trace:
<TASK>
__schedule+0x37d/0xa00
schedule+0x32/0xe0
__lock_sock+0x68/0xa0
? __pfx_autoremove_wake_function+0x10/0x10
lock_sock_nested+0x43/0x50
l2cap_sock_recv_cb+0x21/0xa0
l2cap_recv_frame+0x55b/0x30a0
? psi_task_switch+0xeb/0x270
? finish_task_switch.isra.0+0x93/0x2a0
hci_rx_work+0x33a/0x3f0
process_one_work+0x13a/0x2f0
worker_thread+0x2f0/0x410
? __pfx_worker_thread+0x10/0x10
kthread+0xe0/0x110
? __pfx_kthread+0x10/0x10
ret_from_fork+0x2c/0x50
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1b/0x30
</TASK>
Fixes: 2e07e83 ("Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
(cherry picked from commit f7b94bd)
Signed-off-by: Shreeya Patel <spatel@ciq.com>1 parent 776f128 commit ef357dd
1 file changed
+3
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
267 | | - | |
268 | | - | |
269 | 267 | | |
270 | 268 | | |
271 | 269 | | |
272 | 270 | | |
273 | 271 | | |
274 | | - | |
275 | 272 | | |
276 | 273 | | |
277 | 274 | | |
| |||
297 | 294 | | |
298 | 295 | | |
299 | 296 | | |
300 | | - | |
301 | | - | |
302 | 297 | | |
303 | 298 | | |
304 | 299 | | |
| |||
521 | 516 | | |
522 | 517 | | |
523 | 518 | | |
524 | | - | |
| 519 | + | |
525 | 520 | | |
526 | 521 | | |
527 | | - | |
| 522 | + | |
| 523 | + | |
528 | 524 | | |
529 | 525 | | |
530 | 526 | | |
| |||
0 commit comments