CVE-2026-64206 in Linux
요약
\~에 의해 VulDB • 2026. 07. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
블루투스: L2CAP: conn->lock을 획득하기 전에 pending_rx_work를 취소합니다.
l2cap_conn_del()은 conn->lock을 획득한 후 cancel_work_sync()를 호출하여 pending_rx_work를 처리합니다. process_pending_rx()도 동일한 뮤텍스를 사용하므로, 작업자(worker)가 플러시(flushing)되는 동안 정리(teardown) 과정에서 데드락이 발생할 수 있습니다.
본 문제는 정적 분석 도구를 통해 발견되었으며, 현재 트리와 대조하여 수동으로 검토되었습니다.
기반이 되는 PoC(Proof of Concept)는 l2cap_conn_ready() -> queue_work(..., &conn->pending_rx_work) 제출 경로와 l2cap_conn_del() -> cancel_work_sync(&conn->pending_rx_work) 정리 경로, 그리고 process_pending_rx() -> mutex_lock(&conn->lock) 작업자 경로를 유지했습니다. Lockdep에서는 다음과 같은 경고가 발생했습니다:
WARNING: possible circular locking dependency detected process_pending_rx+0x21/0x2a [vuln_msv]
l2cap_conn_del.constprop.0+0x3f/0x4e [vuln_msv]
*** DEADLOCK ***
conn->lock을 획득하기 전에 pending_rx_work를 취소하여, 동일한 정리 경로에 있는 두 개의 지연된 작업(delayed works)에서 사용되는 기존 '잠금-배수(lock-before-drain)' 순서와 일치시킵니다. pending_rx 큐는 해당 작업이 취소되고 conn->lock이 acquired(획득)된 후에도 여전히 비워집니다(purged).
If you want to get best quality of vulnerability data, you may have to visit VulDB.