🇰🇷 한글 설명
리눅스 커널의 블루투스 ISO 스택에서 iso_conn_del()과 iso_chan_del() 함수 간의 레이스 컨디션으로 인해 iso_conn 객체의 참조 횟수가 중복 감소되는 취약점입니다. 이로 인해 Use-After-Free(UAF)가 발생할 수 있으며, 참조 횟수 관리 로직을 수정하여 해결되었습니다.
💡 쉬운 설명
블루투스 연결을 끊는 과정에서 두 작업이 동시에 일어나 데이터 관리 숫자가 꼬이는 문제입니다. 이로 인해 이미 삭제된 메모리에 접근하게 되어 시스템이 불안정해지거나 해킹에 이용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: fix refcounting of iso_conn
iso_conn_del() and iso_chan_del() have a race that results to double-put
of iso_conn:
[Task hdev->workqueue] [Task 2]
iso_conn_del iso_chan_del
iso_conn_hold_unless_zero iso_conn_lock
iso_conn_lock conn->sk = NULL
iso_conn_unlock
sk = iso_sock_hold(conn) <---------´
if (!sk) iso_conn_put iso_conn_put
iso_conn_put /* UAF */
The extra put for !sk in iso_conn_del() is currently required since
failing iso_chan_add() may leave iso_conn not associated with any sk.
Fix by having iso_pi(sk)->conn own refcount when non-NULL, so
iso_conn_del does not need to put it. Adjust the iso_conn_add()
refcounting so that conn is put if it does not get associated with an
sk.
📍 영향받는 시스템
Linux Kernel (Bluetooth ISO stack 포함 버전)
⚔️ 공격 벡터
블루투스 ISO 채널 및 연결 삭제 과정에서의 레이스 컨디션을 이용한 로컬 공격
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux