Hubert Wiśniewski

#46195de 53,779
5.5CVSS total
Vulnerabilidades · 1
PT-2024-36996
5.5
2024-11-10
Linux · Linux Kernel · CVE-2024-56687
**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: 1. 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. 2. 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. 3. 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. 4. Esvazie o FIFO de recepção em vez de chamar