PT-2024-36996 · Linux+6 · Linux Kernel+6
Hubert Wiśniewski
·
Publicado
2024-11-10
·
Atualizado
2025-10-03
·
CVE-2024-56687
CVSS v3.1
5.5
Média
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Nome do software vulnerável e versões afetadas
Kernel do Linux (versões afetadas não especificadas)
Descrição
Foi identificado um problema de travamento de hardware no kernel do Linux, especificamente no driver MUSB (Media Universal Serial Bus). Esse problema pode ocorrer quando a chamada de retorno de uma solicitação é invocada a partir da função
usb ep queue(), o que pode criar situações de impasse. O problema surge quando o dispositivo é inicializado e um pacote chega, definindo o sinalizador RXPKTRDY e gerando uma interrupção. Se as IRQs (solicitações de interrupção) estiverem habilitadas durante o callback completo, o endpoint pode travar, impedindo que novos pacotes sejam recebidos. Esse problema é particularmente relevante para o dispositivo USB Ethernet, onde o callback rx complete() chama netif rx(), o que pode desabilitar e, em seguida, reabilitar as IRQs. A situação é complexa, envolvendo vários componentes e possíveis soluções alternativas.Recomendações
Para resolver este problema, considere as seguintes abordagens:
-
Certifique-se de que as callbacks nunca habilitem IRQs, embora isso possa ser difícil de garantir devido à complexidade das interações entre
netif rx()e as interrupções. -
Desative as interrupções MUSB em
musb g giveback()antes de chamar o callback e reative-as posteriormente para evitar que as interrupções MUSB sejam tratadas durante o callback. -
Modifique o manipulador de interrupção para limpar o sinalizador RXPKTRDY se a fila de solicitações estiver vazia, embora essa abordagem possa desperdiçar tempo de CPU.
-
Esvazie o FIFO de recepção em vez de chamar
Exploit
Improper Locking
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Alt Linux
Astra Linux
Linuxmint
Linux Kernel
Red Os
Suse
Ubuntu