Linux · Linux Kernel · CVE-2024-40912
**Nome do software vulnerável e versões afetadas**
Versões do kernel Linux anteriores à 6.4.0-02158-g1b062f552873 #742
**Descrição**
O problema está relacionado a um impasse na função ieee80211 sta ps deliver wakeup(), que faz parte do componente mac80211 no kernel do Linux. Essa função utiliza um bloqueio chamado sta->ps lock para sincronizar-se com outra função chamada ieee80211 tx h unicast ps buf(), que é chamada a partir de um contexto softirq. No entanto, usar apenas spin lock() para obter sta->ps lock em ieee80211 sta ps deliver wakeup() não impede que o softirq seja executado na mesma CPU, levando a um impasse quando ele tenta obter o mesmo bloqueio. Isso pode causar uma condição de negação de serviço.
**Recomendações**
Para resolver este problema, atualize o kernel do Linux para uma versão que inclua a correção para o impasse em ieee80211 sta ps deliver wakeup(). Especificamente, use spin lock bh()/spin unlock bh() em vez de spin lock() para impedir que o softirq seja acionado na mesma CPU que está mantendo o bloqueio.
No momento, não há informações sobre uma versão mais recente que contenha uma correção para essa vulnerabilidade.