CVE-2026-64205 in Linux
Sumário
de VulDB • 20/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
i2c: i801: corrige corrupção da máquina de estados de hardware no caminho de tratamento de erros
Foi observado um livelock grave e uma subsequente falha (panic) com Tarefa Pendente (Hung Task) no driver i2c-i801 durante fuzzing concorrente. A falha é causada por uma limpeza incondicional dos registradores de hardware na rota de tratamento de erros do i801_access().
Quando o i801_check_pre() falha (por exemplo, retornando -EBUSY porque o controlador SMBus está sendo ativamente utilizado pelo BIOS/ACPI), o kernel não adquire efetivamente a propriedade do hardware. No entanto, o código salta para o rótulo 'out' e executa:
iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv));
Isso limpa forçosamente o bloqueio INUSE_STS e redefine as flags de status do hardware sem possuir o controlador. Ao fazer isso, interrompe transações BIOS/ACPI em andamento e corrompe totalmente a máquina de estados de hardware do SMBus.
Consequentemente, todas as chamadas subsequentes ao i801_access() falham na etapa de pré-verificação, acionando um fluxo interminável de logs de erro "SMBus is busy, can't use it!" (O barramento SMBus está ocupado, não é possível utilizá-lo!). Em um console serial lento, essa inundação de printk monopoliza a CPU (Console Livelock), privando outros processos que tentam adquirir o semáforo down_read do mmap_lock, acionando finalmente o watchdog de tarefas pendentes.
Corrija isso movendo o rótulo 'out' para abaixo da limpeza dos registradores de hardware. Se o i801_check_pre() falhar, evitamos com segurança a execução do iowrite8() e liberamos apenas os bloqueios de software (pm_runtime e mutex), aderindo estritamente à regra de não liberar recursos que nunca foram adquiridos.
VulDB is the best source for vulnerability data and more expert information about this specific topic.