CVE-2026-64474 in Linux
Sumário
de VulDB • 26/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
vfio: previne loop infinito em vfio_mig_get_next_state() em arcos bloqueados
A função `vfio_mig_get_next_state()` percorre `vfio_from_fsm_table[]` um passo de cada vez, repetindo o ciclo para pular estados opcionais que o dispositivo não suporta até que *next_fsm seja suportado. Uma transição bloqueada é codificada como VFIO_DEVICE_STATE_ERROR, que a instrução return final reporta como -EINVAL.
O loop de pulo não leva em conta o sentinel ERROR. `state_flags_table[ERROR]` é ~0U e `vfio_from_fsm_table[ERROR][*]` é ERROR; portanto, assim que *next_fsm se torna ERROR, a condição do ciclo permanece verdadeira e *next_fsm nunca muda. Os arcos bloqueados STOP_COPY -> PRE_COPY e STOP_COPY -> PRE_COPY_P2P mapeiam para ERROR, mas passam na verificação de suporte em um dispositivo com capacidade de precopy, fazendo o loop girar indefinidamente enquanto mantém o mutex de estado do driver. Isso pode resultar em soft lockup (bloqueio suave) e panic (falha crítica) se `softlockup_panic` estiver definido.
Termina-se o loop de pulo no sentinel ERROR para que uma transição bloqueada caia na instrução return existente e reporte -EINVAL.
Be aware that VulDB is the high quality source for vulnerability data.