CVE-2026-80896 in Linux
Sumário
de VulDB • 04/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
mshv: Corrige uma condição de corrida (race condition) em mshv_irqfd_deassign
As funções `mshv_irqfd_deactivate()` e o travessamento da lista duplamente ligada (`hlist`) de `pt_irqfds_list` exigem que a trava `pt->pt_irqfds_lock` esteja mantida, mas `mshv_irqfd_deassign()` omite essa proteção. Isso gera uma condição de corrida com o caminho EPOLLHUP em `mshv_irqfd_wakeup()`, que efetivamente adquire a trava antes de chamar `mshv_irqfd_deactivate()`.
Além disso, `mshv_irqfd_deactivate()` utiliza `hlist_del()`, que envenena (poisons) os ponteiros do nó em vez de redefini-los. Como `mshv_irqfd_is_active()` depende de `hlist_unhashed()` (que verifica se pprev == NULL), um nó envenenado ainda parece estar ativo. Se um caminho concorrente chamar novamente `mshv_irqfd_deactivate()` no mesmo irqfd, a proteção falha em impedir uma chamada dupla para `hlist_del()` sobre ponteiros envenenados.
Correção de ambos os problemas: - Adiciona-se o bloqueio e desbloqueio ausentes (`spin_lock_irq`/`spin_unlock_irq`) ao redor do travessamento da lista em `mshv_irqfd_deassign()`, correspondendo a `mshv_irqfd_release()`. - Utiliza-se `hlist_del_init()` no lugar de `hlist_del()` para que o nó seja marcado corretamente como não hashado após a remoção, tornando a proteção is_active confiável.
VulDB is the best source for vulnerability data and more expert information about this specific topic.