🇰🇷 한글 설명
Linux 커널의 Bluetooth hci_ldisc 구성 요소에서 hci_register_dev() 호출 실패 시 HCI_UART_PROTO_INIT 플래그가 적절히 해제되지 않는 취약점입니다. 이로 인해 리소스가 해제된 후에도 UART 데이터가 프로토콜 전용 수신 핸들러에 도달하여 문제를 일으킬 수 있습니다.
💡 쉬운 설명
블루투스 연결 설정 중 오류가 발생했을 때, 시스템이 사용 중인 통로를 완전히 닫지 않아 발생하는 문제입니다. 이로 인해 이미 닫힌 통로로 데이터가 들어오면서 시스템 오류나 충돌이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_ldisc: Clear HCI_UART_PROTO_INIT on error
When hci_register_dev() fails in hci_uart_register_dev()
HCI_UART_PROTO_INIT is not cleared before calling hu->proto->close(hu)
and setting hu->hdev to NULL. This means incoming UART data will reach
the protocol-specific recv handler in hci_uart_tty_receive() after
resources are freed.
Clear HCI_UART_PROTO_INIT with a write lock before calling
hu->proto->close() and setting hu->hdev to NULL. The write lock ensures
all active readers have completed and no new reader can enter the
protocol recv path before resources are freed.
This allows the protocol-specific recv functions to remove the
"HCI_UART_REGISTERED" guard without risking a null pointer dereference
if hci_register_dev() fails.
📍 영향받는 시스템
Linux Kernel (Bluetooth hci_ldisc 관련 모듈 사용 시스템)
⚔️ 공격 벡터
잘못된 블루투스 UART 데이터 전송을 통한 리소스 해제 후 데이터 유입 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.