🇰🇷 한글 설명
리눅스 커널의 Bluetooth BNEP 구성 요소에서 dev->name을 읽을 때 발생하는 Use-After-Free(UAF) 취약점입니다. bnep_add_connection() 함수가 세마포어를 적절히 유지하지 않아, 동시에 연결이 삭제될 경우 이미 해제된 메모리 영역에 접근할 수 있습니다.
💡 쉬운 설명
블루투스 연결을 추가하는 과정에서 시스템이 이미 삭제된 정보를 읽으려고 시도하여 오류가 발생할 수 있는 문제입니다. 다만, 이 작업을 수행하려면 관리자 권한이 필요하므로 일반 사용자가 공격하기는 매우 어렵습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: bnep: Fix UAF read of dev->name
bnep_add_connection() needs to keep holding the bnep_session_sem while
reading dev->name (just like bnep_get_connlist() does); otherwise the
bnep_session() thread can concurrently free the net_device, which can for
example be triggered by a concurrent bnep_del_connection().
(This UAF is fairly uninteresting from a security perspective;
calling bnep_add_connection() requires passing a capable(CAP_NET_ADMIN)
check. It also requires completely tearing down a netdev during a fairly
tight race window.)
📍 영향받는 시스템
Bluetooth BNEP 기능이 포함된 취약한 버전의 Linux Kernel
⚔️ 공격 벡터
CAP_NET_ADMIN 권한을 가진 공격자가 블루투스 연결 추가와 삭제를 정밀하게 동시에 수행하는 레이스 컨디션 공격
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.