PT-2024-36996

CVE-2024-56687

·

Publicado

2024-11-10

·

Atualizado

2025-10-03

Descrição por

CVSS 3.1
5.5
Média
MétricasAV: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:
  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
Explorabilidade
Exploit
Impactos
Pesquisadores
Fornecedores
Produtos afetados
Enumeração de fraquezas
Identificadores relacionados
ALSA-2025_12746
ALSA-2025_12752
ALSA-2025_12753
ALSA-2025_16880
ALT-PU-2024-17893
ALT-PU-2025-12647
DLA-4076-1
OESA-2025-1093
OESA-2025-1097
OPENSUSE-SU-2025_0428-1
OPENSUSE-SU-2025_0499-1
OPENSUSE-SU-2025_0557-1
SUSE-SU-2025:0289-1
SUSE-SU-2025:0428-1
SUSE-SU-2025_0428-1
SUSE-SU-2025:0499-1
SUSE-SU-2025_0499-1
SUSE-SU-2025:0557-1
SUSE-SU-2025_0557-1
SUSE-SU-2025:20165-1
SUSE-SU-2025:20166-1
SUSE-SU-2025:20248-1
SUSE-SU-2025:20249-1
USN-7276-1
USN-7277-1
USN-7310-1
USN-7449-1
USN-7449-2
USN-7450-1
USN-7451-1
USN-7452-1
USN-7453-1
USN-7468-1
USN-7523-1
USN-7524-1
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾