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

VetorAV: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

CVE-2026-64583
OPENSUSE-SU-2026:11476-1

Produtos afetados

Bdc Udc Driver
Linux Kernel