🇰🇷 한글 설명
Linux 커널의 Bluetooth 스택에서 HCI_PROTO_DEFER 설정 시 hci_conn_request_evt() 함수가 hdev->lock을 획득하지 않고 hci_connect_cfm()을 호출하는 취약점이 발견되었습니다. 이로 인해 연결 요청 처리 중 연결 객체가 동시에 삭제될 경우 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
블루투스 연결을 요청하는 과정에서 시스템의 보호 장치가 제대로 작동하지 않아 메모리 오류가 발생할 수 있는 문제입니다. 공격자가 이를 악용하면 시스템이 충돌하거나 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: fix locking in hci_conn_request_evt() with HCI_PROTO_DEFER
When protocol sets HCI_PROTO_DEFER, hci_conn_request_evt() calls
hci_connect_cfm(conn) without hdev->lock. Generally hci_connect_cfm()
assumes it is held, and if conn is deleted concurrently -> UAF.
Only SCO and ISO set HCI_PROTO_DEFER and only for defer setup listen,
and HCI_EV_CONN_REQUEST is not generated for ISO. In the non-deferred
listening socket code paths, hci_connect_cfm(conn) is called with
hdev->lock held.
Fix by holding the lock.
📍 영향받는 시스템
HCI_PROTO_DEFER를 사용하는 SCO/ISO 프로토콜이 포함된 Linux 커널 버전
⚔️ 공격 벡터
특수하게 조작된 블루투스 연결 요청 패킷을 전송하여 메모리 관리 오류 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인