🇰🇷 한글 설명
Linux 커널의 Bluetooth hci_core 구성 요소에서 hci_unregister_dev() 함수 호출 시 발생하는 Use-After-Free(UAF) 취약점입니다. 장치 해제 과정에서 cmd_timer와 ncmd_timer가 비활성화되지 않아, 메모리가 해제된 후 타이머 콜백이 실행되면서 해제된 메모리를 참조하게 됩니다.
💡 쉬운 설명
블루투스 장치를 끌 때 컴퓨터가 메모리에서 해당 정보를 지우는데, 지워진 정보를 아직 사용하려고 시도하면서 발생하는 오류입니다. 이로 인해 시스템이 멈추거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_core: Fix UAF in hci_unregister_dev()
hci_unregister_dev() does not disable cmd_timer and ncmd_timer
before the hci_dev structure is freed. If a timeout fires
during device teardown, the callback dereferences freed memory
(including the hdev->reset function pointer), leading to a
use-after-free.
Add disable_delayed_work_sync() calls alongside the existing
disable_work_sync() calls to ensure both timers are fully
quiesced before teardown proceeds.
📍 영향받는 시스템
Linux Kernel (Bluetooth hci_core 관련 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 블루투스 장치 해제 시나리오를 유도하여 메모리 오류를 발생시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 hci_unregister_dev() 내 타이머 비활성화 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인