🇰🇷 한글 설명
Linux 커널의 Bluetooth L2CAP 프로토콜에서 l2cap_sock_new_connection_cb() 함수 호출 시 Use-After-Free 취약점이 발견되었습니다. 부모 소켓의 잠금이 해제된 후 새로운 채널이 다른 작업에 의해 먼저 해제될 수 있어 메모리 오류가 발생할 수 있습니다. 이를 해결하기 위해 채널의 생명주기 관리 방식을 변경하여 커널 코어가 채널의 유효성을 보장하도록 수정되었습니다.
💡 쉬운 설명
블루투스 연결을 처리하는 과정에서 컴퓨터 메모리가 이미 사용 중지된 데이터를 다시 참조하려고 시도하는 오류가 있습니다. 이로 인해 시스템이 충돌하거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_new_connection_cb()
l2cap_sock_new_connection_cb() returned l2cap_pi(sk)->chan after
release_sock(parent). Once the parent lock is dropped the newly
enqueued child socket sk is reachable via the accept queue, so another
task can accept and free it before the callback dereferences sk,
resulting in a use-after-free.
Rework the ->new_connection() op so the core, rather than the callback,
owns the child channel's lifetime. The op now receives a pre-allocated
new_chan and returns an errno instead of allocating and returning a
channel. l2cap_new_connection() allocates the child channel and links
it into the conn list via __l2cap_chan_add() before invoking the
callback, so the conn-list reference keeps the channel alive once
release_sock(parent) exposes the socket to other tasks.
Channel configuration that was duplicated in l2cap_sock_init() and the
various new_connection callbacks is consolidated into
l2cap_chan_set_defaults(), which now inherits from the parent channel
when one is supplied.
📍 영향받는 시스템
Linux Kernel (Bluetooth L2CAP 관련 모듈 사용 시스템)
⚔️ 공격 벡터
조작된 블루투스 연결 요청을 통해 메모리 해제 후 재사용(Use-After-Free) 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인