PT-2026-68416 · Broadcom+1 · Bdc Udc Driver+1
CVE-2026-64583
·
Publicado
2026-08-06
·
Atualizado
2026-08-23
CVSS v3.1
7.8
Alta
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
Linux kernel (versões afetadas não especificadas)
Description
O driver Broadcom BDC UDC contém uma condição de corrida durante o processo de remoção. O driver utiliza
devm request irq() na função bdc udc init(), o que significa que a solicitação de interrupção (IRQ) é liberada apenas após o retorno da função bdc remove(). No entanto, a bdc remove() aciona manualmente bdc udc exit() e bdc hw exit(), que liberam o anel de relatório de status DMA-coerente bdc->srr.sr bds e o bdc->bdc ep array enquanto o manipulador de IRQ bdc udc interrupt() ainda está ativo. Se ocorrer uma interrupção compartilhada durante essa janela, a função bdc udc interrupt() pode desreferenciar memória NULL ou já liberada, resultando em um NULL-dereference ou use-after-free. Além disso, o trabalho atrasado bdc->func wake notify não é cancelado, permitindo que ele desreferencie memória liberada caso seja executado após a liberação da estrutura bdc.Recommendations
Substitua
devm request irq() por request irq() e implemente um free irq(bdc->irq, bdc) explícito dentro de bdc remove(). Limpe o BDC GIE antes de chamar free irq() para interromper as interrupções do dispositivo e utilize cancel delayed work sync() para drenar o trabalho atrasado func wake notify antes de prosseguir com a desmontagem em bdc udc exit() e bdc hw exit().Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Bdc Udc Driver
Linux Kernel