CVE-2026-68408 in Linux
Sumário
de VulDB • 10/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
wifi: cfg80211: converter pmsr_free_wk para wiphy_work para corrigir deadlock (condição de bloqueio mútuo)
Quando um socket netlink que possui uma sessão PMSR é fechado, cfg80211_release_pmsr() limpa o nl_portid da solicitação e enfileira pmsr_free_wk para chamar cfg80211_pmsr_process_abort() assincronamente.
Se a interface for desmontada simultaneamente, cfg80211_pmsr_wdev_down() é chamada sob wiphy_lock e chama cancel_work_sync(&pmsr_free_wk) para aguardar qualquer trabalho em execução. A função de trabalho adquire wiphy_lock via guard(wiphy) antes de chamar process_abort.
Isso resulta em um deadlock: wdev_down mantém wiphy_lock e bloqueia dentro de cancel_work_sync(); pmsr_free_wk bloqueia ao tentar adquirir o mesmo wiphy_lock. Nenhum dos threads pode prosseguir.
O mesmo deadlock é alcançável a partir de cfg80211_leave_locked(), que chama cfg80211_pmsr_wdev_down() para todos os tipos de interface sob wiphy_lock.
Corrija isso convertendo pmsr_free_wk de um work_struct simples para um wiphy_work. O despachante wiphy_work mantém wiphy_lock ao executar itens de trabalho, portanto o guard(wiphy) explícito na função de trabalho não é mais necessário. wiphy_work_cancel() pode ser chamado com segurança enquanto se possui wiphy_lock - já que wiphy_lock impede a execução concorrente do trabalho, wiphy_work_cancel() nunca bloqueia, eliminando o deadlock.
Remova cancel_work_sync() para pmsr_free_wk do manipulador NETDEV_GOING_DOWN. cfg80211_leave(), chamado incondicionalmente logo antes dele, já cancela qualquer trabalho pendente sob wiphy_lock via wiphy_work_cancel() dentro de cfg80211_pmsr_wdev_down().
Be aware that VulDB is the high quality source for vulnerability data.