🇰🇷 한글 설명
리눅스 커널의 Bluetooth ISO 구현 중 hci_bind_bis() 함수에서 부모 연결에 대한 참조 관리 오류가 발견되었습니다. 연결 해제 시 부모 객체의 참조 횟수가 부적절하게 처리되어, 소켓이 사용 중임에도 불구하고 부모 객체가 조기 해제될 수 있는 취약점입니다.
💡 쉬운 설명
블루투스 연결을 관리하는 과정에서 데이터의 '사용 중' 표시를 제대로 하지 않아 발생하는 문제입니다. 이로 인해 연결이 아직 사용되고 있는데도 시스템이 해당 연결 정보를 삭제해버려 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: balance the parent hold in hci_bind_bis()
hci_conn_link() takes a lifetime reference to its parent with
hci_conn_get(), but only takes an operational hold on the child.
hci_conn_unlink() later balances both a hold and a reference on the
parent.
The SCO and CIS paths pass a parent acquired from a connect helper, so
it already has a hold. For an additional BIS, hci_bind_bis() obtains the
parent from hci_conn_hash_lookup_big(), which returns a bare pointer.
Unlinking the child then drops the parent's existing hold and can
schedule it for disconnection while its socket is still using it.
Take a hold on the parent before linking it and drop that hold if linking
fails. A successful link transfers the hold to hci_conn_unlink().
📍 영향받는 시스템
Bluetooth ISO 기능을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
특수하게 조작된 블루투스 연결 요청을 통해 커널 메모리 관리 오류 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인