🇰🇷 한글 설명
Linux 커널의 Bluetooth af_bluetooth 구성 요소에서 데드락(Deadlock)이 발생할 수 있는 취약점이 발견되었습니다. .recvmsg 호출 시 sock_lock을 시도하는 과정에서 교착 상태가 발생할 수 있으며, 이를 해결하기 위해 bt_sock_ioctl에서 sk_receive_queue.lock을 사용하도록 수정되었습니다.
💡 쉬운 설명
블루투스 통신을 처리하는 과정에서 시스템의 두 작업이 서로의 자원을 기다리며 멈춰버리는 현상이 발생할 수 있습니다. 이로 인해 시스템이 응답하지 않거나 먹통이 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: af_bluetooth: Fix deadlock
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>
📍 영향받는 시스템
Linux Kernel (Bluetooth af_bluetooth 관련 모듈 사용 시스템)
⚔️ 공격 벡터
특정 블루투스 프로토콜(L2CAP 등)을 이용한 데이터 수신 과정에서 교착 상태 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.