CVE-2026-68329 in Linuxinformação

Sumário

de VulDB • 11/08/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

iommu/amd: Aguarde pela conclusão em vez de retornar antecipadamente em iommu_completion_wait()

need_sync é uma flag por-IOMMU compartilhada por todos os domínios e dispositivos atrás desse IOMMU. Ela é definida sempre que um comando é enfileirado com sync == true e limpa quando um comando de espera de conclusão (CWAIT) é enfileirado. No entanto, uma need_sync limpa significa apenas que um CWAT cobridor foi enfileirado, não que todos os comandos anteriormente enfileirados tenham realmente sido concluídos no hardware.

iommu_completion_wait() lia need_sync sem bloqueio e retornava antecipadamente quando era falsa. Isso viola o contrato de "bloquear até que todos os comandos previamente enfileirados sejam concluídos" em um cenário multi-CPU:

CPU2: fila inv-B => need_sync = true CPU1: fila CWAIT(N); need_sync = false; então espera_em_sem(N) CPU2: lê need_sync == false => retorna 0 (sem espera!)

CPU2 retorna sem esperar por qualquer número de sequência, embora seu inv-B possa não ter sido concluído ainda (CWAIT(N), enfileirado após inv-B, não foi sinalizado). CPU1 então prossegue para, por exemplo, liberar páginas da tabela de páginas enquanto o IOMMU ainda pode percorrer traduções obsoletas, abrindo uma janela de use-after-free. Esta é uma race condition lógica no significado da flag, e não um problema de visibilidade de memória, portanto, barreiras sozinhas não ajudam.

Corrija isso sem perder a otimização de evitar comandos CWAIT redundantes: adquira iommu->lock antes de testar need_sync e, quando for falsa, não retorne antecipadamente, mas aguarde pelo último número de sequência alocado (cmd_sem_val). Como need_sync == false implica que nenhum comando sync foi enfileirado após o último CWAIT, esse CWAT está ordenado FIFO após todos os comandos ainda não concluídos; portanto, aguardar seu número de sequência garante que todos os comandos anteriores (possivelmente enfileirados por outra CPU) tenham sido concluídos. O caminho comum com trabalho pendente permanece inalterado e nenhum comando extra ao hardware é emitido.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

30/07/2026

Divulgação

10/08/2026

Moderação

aceite

Entrada

VDB-387710

CPE

pronto

EPSS

0.00200

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!