🇰🇷 한글 설명
리눅스 커널의 Bluetooth hci_sync 모듈에서 hci_cmd_sync_dequeue_once 함수가 항목을 조회하고 취소하는 과정이 서로 다른 잠금 섹션에서 수행되어 경합 조건이 발생합니다. 이로 인해 hci_cmd_sync_work 함수가 동일한 항목을 동시에 삭제할 수 있으며, 결과적으로 이중 리스트 삭제(double list_del) 및 Use-After-Free(UAF) 취약점이 유발됩니다.
💡 쉬운 설명
블루투스 기능을 처리하는 과정에서 두 작업이 동시에 같은 데이터를 건드려 충돌이 발생하는 문제입니다. 이 충돌로 인해 시스템이 비정상적으로 종료되거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_sync: fix race in hci_cmd_sync_dequeue_once
hci_cmd_sync_dequeue_once() does lookup and then cancel
the entry under two separate lock sections. Meanwhile,
hci_cmd_sync_work() can also delete the same entry,
leading to double list_del() and "UAF".
Fix this by holding cmd_sync_work_lock across both
lookup and cancel, so that the entry cannot be removed
concurrently.
📍 영향받는 시스템
Bluetooth 스택을 사용하는 리눅스 커널 (hci_sync 모듈 포함 버전)
⚔️ 공격 벡터
특정 블루투스 명령을 정밀하게 조작하여 커널 내 경합 조건을 유도하는 방식
🛡️ 대응 방법
hci_cmd_sync_work_lock을 사용하여 조회와 취소 과정을 하나의 잠금 섹션으로 통합한 최신 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인