🇰🇷 한글 설명
Linux 커널의 Bluetooth ISO 스택에서 hci_conn 포인터에 대한 Use-After-Free 취약점이 발견되었습니다. iso_sock_rebind_bc() 함수에서 소켓 잠금을 해제한 후 연결 객체를 참조하는 과정에서 경쟁 상태가 발생하여 메모리 오류를 유발할 수 있습니다.
💡 쉬운 설명
블루투스 연결을 처리하는 과정에서 데이터가 이미 삭제된 메모리 주소를 다시 참조하여 시스템이 충돌하거나 보안 문제가 생길 수 있는 오류입니다. 연결을 끊는 동작과 재연결하는 동작이 동시에 일어날 때 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: Fix a use-after-free of the hci_conn pointer
In iso_sock_rebind_bc(), the bis pointer is cached, then the socket lock is
dropped:
bis = iso_pi(sk)->conn->hcon;
/* Release the socket before lookups since that requires hci_dev_lock
* which shall not be acquired while holding sock_lock for proper
* ordering.
*/
release_sock(sk);
hci_dev_lock(bis->hdev);
During the unlocked window, could a concurrent close() destroy the connection
and free the bis structure, causing hci_dev_lock(bis->hdev) to access memory
after it is freed, fix this by using the hdev reference which was safely
acquired via iso_conn_get_hdev().
📍 영향받는 시스템
Linux Kernel (Bluetooth ISO 스택 포함 버전)
⚔️ 공격 벡터
로컬 또는 원격에서 블루투스 ISO 연결을 의도적으로 빈번하게 생성 및 해제하여 경쟁 상태 유도
🛡️ 대응 방법
iso_conn_get_hdev()를 사용하여 hdev 참조를 안전하게 획득하도록 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인