🇰🇷 한글 설명
Linux 커널의 Bluetooth L2CAP 구성 요소에서 발생하는 교착 상태(Deadlock) 취약점입니다. l2cap_conn_del() 함수가 연결을 해제하는 과정에서 잠금(lock)을 먼저 획득한 후 대기 중인 작업을 취소하려 시도하여, 해당 작업이 동일한 잠금을 기다리며 무한 대기에 빠질 수 있습니다.
💡 쉬운 설명
블루투스 연결을 끊는 과정에서 시스템이 서로의 자원을 기다리며 멈춰버리는 현상이 발생할 수 있습니다. 이로 인해 블루투스 기능이 작동하지 않거나 시스템 전체가 응답하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: cancel pending_rx_work before taking conn->lock
l2cap_conn_del() takes conn->lock and then calls cancel_work_sync() for
pending_rx_work. process_pending_rx() takes the same mutex, so teardown
can deadlock against the worker it is flushing.
This issue was found by our static analysis tool and then manually
reviewed against the current tree.
The grounded PoC kept the l2cap_conn_ready() -> queue_work(...,
&conn->pending_rx_work) submit path, the l2cap_conn_del() ->
cancel_work_sync(&conn->pending_rx_work) teardown path, and the
process_pending_rx() -> mutex_lock(&conn->lock) worker edge. Lockdep
WARNING: possible circular locking dependency detected
process_pending_rx+0x21/0x2a [vuln_msv]
l2cap_conn_del.constprop.0+0x3f/0x4e [vuln_msv]
*** DEADLOCK ***
Cancel pending_rx_work before taking conn->lock, matching the existing
lock-before-drain ordering used for the two delayed works in the same
teardown path. The pending_rx queue is still purged after the work has
been cancelled and conn->lock has been acquired.
📍 영향받는 시스템
Linux Kernel (Bluetooth L2CAP 관련 모듈 포함 버전)
⚔️ 공격 벡터
특정 블루투스 연결 및 해제 시퀀스를 반복하여 커널 데드락 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA GPU Display Driver for Linux