🇰🇷 한글 설명
Linux 커널의 Bluetooth btusb 드라이버 내 Mediatek 장치 처리 과정에서 usb_driver_claim_interface() 호출 시 필요한 장치 잠금(lock)이 누락된 취약점입니다. 이로 인해 인터페이스 점유 실패나 NULL 포인터 역참조로 인한 시스템 오류 및 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
블루투스 장치를 사용할 때 시스템이 내부적으로 데이터를 안전하게 보호하기 위한 '잠금 장치'를 제대로 걸지 않아 발생하는 문제입니다. 이로 인해 블루투스가 제대로 작동하지 않거나 컴퓨터 시스템이 갑자기 멈추는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btusb: mediatek: Add locks for usb_driver_claim_interface()
The documentation for usb_driver_claim_interface() says that "the
device lock" is needed when the function is called from places other
than probe(). This appears to be the lock for the USB interface
device. The Mediatek btusb code gets called via this path:
Workqueue: hci0 hci_power_on [bluetooth]
Call trace:
usb_driver_claim_interface
btusb_mtk_claim_iso_intf
btusb_mtk_setup
hci_dev_open_sync
hci_power_on
process_scheduled_works
worker_thread
kthread
With the above call trace the device lock hasn't been claimed. Claim
it.
Without this fix, we'd sometimes see the error "Failed to claim iso
interface". Sometimes we'd even see worse errors, like a NULL pointer
dereference (where `intf->dev.driver` was NULL) with a trace like:
Call trace:
usb_suspend_both
usb_runtime_suspend
__rpm_callback
rpm_suspend
pm_runtime_work
process_scheduled_works
Both errors appear to be fixed with the proper locking.
📍 영향받는 시스템
Linux Kernel (Mediatek Bluetooth btusb 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 블루투스 동작을 유도하여 커널 오류를 일으키는 방식 (DoS 가능성)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.