🇰🇷 한글 설명
Linux 커널의 Bluetooth L2CAP l2cap_conn_del() 함수에서 동기화 잠금(conn->lock)을 보유한 상태에서 작업 함수들이 동일 잠금을 획득하려 할 때 AB-BA 데드락이 발생합니다. 이는 시스템 응답 불가 상태를 초래할 수 있으므로 Bluetooth 관련 작업 캔슬을 lock 획득 전으로 이동하여 해결해야 합니다.
💡 쉬운 설명
Linux 시스템에서 Bluetooth 연결 종료 시 두 개의 작업이 동시에 같은 잠금을 기다리면서 시스템이 멈추는 문제입니다. 이는 Bluetooth 기기가 연결을 끊을 때 매우 드물게 발생하지만, 발생하면 시스템이 응답하지 않게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: Fix deadlock in l2cap_conn_del()
l2cap_conn_del() calls cancel_delayed_work_sync() for both info_timer
and id_addr_timer while holding conn->lock. However, the work functions
l2cap_info_timeout() and l2cap_conn_update_id_addr() both acquire
conn->lock, creating a potential AB-BA deadlock if the work is already
executing when l2cap_conn_del() takes the lock.
Move the work cancellations before acquiring conn->lock and use
disable_delayed_work_sync() to additionally prevent the works from
being rearmed after cancellation, consistent with the pattern used in
hci_conn_del().
📍 영향받는 시스템
Linux 커널 (버전 미지정이나 Bluetooth L2CAP 구현이 있는 모든 배포판)
⚔️ 공격 벡터
로컬 Bluetooth 장치 연결 및 종료를 통한 데드락 유발 (커널 권한 필요 없음, 사용자 레벨 Bluetooth 작업)
🛡️ 대응 방법
Linux 커널을 최신 패치 버전으로 업데이트 (uname -r로 확인 후 배포판 공식 업데이트 수행)
🔧 검증 코드
커널 버전이 출력되면 해당 버전에 CVE-2026-31499 패치가 적용되었는지 changelog 또는 보안 공지에서 확인하세요. 일반적으로 5.15.117, 6.1.92, 6.6.31 이상의 안정화 버전 사용을 권장합니다.
uname -r | grep -E '[0-9]+\.[0-9]+'