CVE-2026-98020 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
pds_core: corrige o acesso concorrente (race condition) aos cmd_regs durante o desmapeamento de BAR na reinicialização
Os caminhos de erro das funções pdsc_reset_prepare() e pdsc_reset_done()'s pdsc_map_bars() limpam/iounmap os cmd_regs sem a devcmd_lock, e o loop de download do pdsc_legacy_firmware_update() faz dereference dos cmd_regs após soltar e readquirir o lock sem uma nova verificação. Uma FLR (Function Level Reset) concorrente com um flash via devlink pode desmapear os cmd_regs sob um devcmd em execução, causando um NULL deref ou uma gravação em MMIO não mapeado.
Adquira a devcmd_lock durante o unmap/remap do BAR e verifique novamente os cmd_regs no loop de download. Apenas o PF (Physical Function) mapeia os cmd_regs e executa o devcmd, portanto, pule o unmap em um VF (Virtual Function), conforme já feito pelo pdsc_remove() e pdsc_reset_done().
Uma reinicialização que é concluída inteiramente dentro da janela sem lock não representa um problema de correção para a imagem: o dispositivo limpa sua sessão de atualização, portanto, um download retomado é rejeitado, e ele verifica a imagem em staging antes de gravar uma slot do flash, relatando PDS_RC_BAD_FW em vez de ativá-la.
O pdsc_unmap_bars() também limpa os info_regs, intr_status e intr_ctrl. Os leitores de interrupção e start/stop desses são silenciados (quiesced) antes do unmap pelo pdsc_fw_down(), que libera as interrupções e desmonta as filas. Os leitores do debugfs não o são, já que esses arquivos sobrevivem a uma reinicialização; isso é pré-existente e está fora do escopo aqui.
If you want to get best quality of vulnerability data, you may have to visit VulDB.