CVE-2026-68408
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
wifi: cfg80211: 데드락을 수정하기 위해 pmsr_free_wk를 wiphy_work로 변환
PMSR 세션을 소유하는 netlink 소켓이 닫힐 때, cfg80211_release_pmsr()는 요청의 nl_portid를 지우고 pmsr_free_wk를 큐에 넣어 cfg80211_pmsr_process_abort()를 비동기적으로 호출합니다.
인터페이스가 동시에 종료되면, cfg80211_pmsr_wdev_down()이 wiphy_lock 하에서 호출되어 실행 중인 작업을 기다리기 위해 cancel_work_sync(&pmsr_free_wk)를 호출합니다. 작업 함수는 process_abort를 호출하기 전에 guard(wiphy)를 통해 wiphy_lock을 획득합니다.
이는 데드락입니다: wdev_down은 wiphy_lock을 보유하고 있으며 cancel_work_sync() 내부에서 블록됩니다; pmsr_free_wk는 동일한 wiphy_lock을 획득하려고 시도하며 차단됩니다. 어느 스레드도 진행할 수 없습니다.
동일한 데드락은 cfg80211_leave_locked()에서도 발생할 수 있는데, 이는 모든 인터페이스 유형에 대해 wiphy_lock 하에서 cfg80211_pmsr_wdev_down()을 호출합니다.
pmsr_free_wk를 단순 work_struct에서 wiphy_work로 변환하여 이를 수정합니다. wiphywork 디스패처는 작업 항목이 실행되는 동안 wiphylock을 보유하고 있으므로, 작업 함수 내의 명시적인 guard(wiphy)가 더 이상 필요하지 않습니다. wiphylck를 보유한 상태에서 wiphy_work_cancel()을 안전하게 호출할 수 있습니다 - wiphylcok이 작업을 동시에 실행하는 것을 방지하므로, wiphyworkcancel()은 결코 블록되지 않아 데드락이 제거됩니다.
NETDEV_GOING_DOWN 핸들러에서 pmsr_free_wk에 대한 cancel_work_sync()를 제거합니다. 바로 직전에 조건 없이 호출되는 cfg80211_leave()는 이미 cfg80211_pmsr_wdev_down() 내부의 wiphyworkcancel()을 통해 wiphylck 하에서 보류 중인 모든 작업을 취소합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.