🇰🇷 한글 설명
리눅스 커널의 블루투스 ISO 계층에서 채널 연결 시 사용되지 않는 CIS 참조 카운트(hold)가 해제되지 않는 취약점이 발견되었습니다. iso_chan_add() 함수가 특정 상황에서 성공하거나 -EBUSY를 반환할 때, 반환된 참조 카운트를 적절히 처리하지 않아 발생합니다.
💡 쉬운 설명
블루투스 연결 과정에서 시스템이 사용하지 않는 메모리나 연결 정보를 제대로 정리하지 못하는 문제입니다. 이로 인해 시스템의 자원이 낭비되거나 연결 관리에 오류가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: release unused CIS holds after channel attach
hci_bind_cis() and hci_connect_cis() return one hci_conn hold for the
ISO layer. A new channel association consumes that hold, which is
eventually released by iso_conn_free().
There are two cases where iso_chan_add() does not create an association:
it returns success when the socket is already attached to the same
iso_conn, and it returns -EBUSY when another socket is attached. The
hold returned for the current call is unused in both cases. This occurs
when deferred setup calls iso_connect_cis() again for its existing
socket, or when another socket attempts to reuse the CIS.
Detect the idempotent case while the connection is locked and release
the unused hold after iso_chan_add(). Also release it on -EBUSY. Do not
drop it for other errors: a newly allocated iso_conn releases the
transferred hold when its last temporary reference is put.
📍 영향받는 시스템
Linux Kernel (Bluetooth ISO/CIS 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 블루투스 연결 요청을 반복하거나 중복된 소켓 연결을 시도하여 자원 누수를 유발할 수 있음
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.