PT-2022-7474 · Linux+3 · Linux Kernel+3
Syzbot
·
Publicado
2022-03-06
·
Atualizado
2026-03-14
·
CVE-2022-48862
CVSS v3.1
5.5
Média
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Nome do software vulnerável e versões afetadas
Kernel do Linux (versões afetadas não especificadas)
Descrição
O problema está relacionado a um thread travado devido a entradas iotlb incorretas no componente vhost do kernel Linux. Especificamente, em
vhost iotlb add range ctx(), o tamanho do intervalo pode transbordar para 0 quando start é 0 e last é ULONG MAX. Isso pode ocorrer quando o espaço do usuário envia uma mensagem IOTLB com iova=size=uaddr=0. Como resultado, uma entrada com size = 0, start = 0, last = ULONG MAX acaba no iotlb, fazendo com que iotlb access ok() entre em loop infinito quando um pacote é enviado. Para corrigir isso, duas ações são recomendadas: retornar -EINVAL em vhost chr write iter() quando o espaço do usuário solicitar o mapeamento de um intervalo com tamanho 0 e corrigir vhost iotlb add range ctx() para lidar com o intervalo [0, ULONG MAX] dividindo-o em duas entradas.Recomendações
Para resolver o problema, siga estas etapas:
-
Retorne -EINVAL em
vhost chr write iter()quando o espaço do usuário solicitar o mapeamento de um intervalo com tamanho 0. -
Corrija
vhost iotlb add range ctx()para lidar com o intervalo [0, ULONG MAX] dividindo-o em duas entradas.
Como solução alternativa temporária, considere desativar a função
vhost iotlb add range ctx() até que um patch esteja disponível. Restrinja o acesso ao módulo vhost vulnerável para minimizar o risco de exploração. Evite usar os parâmetros iova e uaddr com tamanho 0 nos pontos de extremidade da API afetados até que o problema seja resolvido.Exploit
Correção
Infinite Loop
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Debian
Linux Kernel
Red Os
Suse