
CVE-2021-3656:
Esse problema é causado pela ausência de validação do campo virt_ext VMCB e permite que um convidado L1 malicioso desabilite os intercepts de VMLOAD/VMSAVE e o VLS (Virtual VMLOAD/VMSAVE) para o convidado L2. Nessas circunstâncias, o convidado L2 consegue executar VMLOAD/VMSAVE sem interceptação e, assim, ler/gravar partes da memória física do host.
Configuração do ambiente para acessar o kernel Linux:
Você poderia usar um contêiner Docker ou usar uma Máquina Virtual. Farei o meu melhor com um contêiner docker
Você precisa ter o Docker Desktop configurado no MAC ou no Windows. Se você tiver uma máquina Linux por padrão, pode ignorar todas essas etapas.
Em seguida, você deseja baixar uma imagem do ubuntu de: ubuntu - Imagem Oficial | Docker Hub
a. No Windows, você pode digitar “docker pull ubuntu” no PowerShell ou CMD
b. O mesmo para o MAC i. Nota: Isso baixará a versão mais recente do ubuntu. Talvez você queira baixar uma versão mais antiga para ter uma versão mais antiga do kernel dele ii. Crie um diretório com um Dockerfile nele. O arquivo, no mínimo, precisa ter: “From ubuntu:16.04” iii. Para obter uma versão mais antiga, digite: “docker build -t ubuntu-xenial”, por exemplo iv. Para verificar suas imagens atuais, digite: “docker image ls”
c. Depois de executar o comando do item iii, o sistema fornecerá um ID de contêiner. i. Você pode verificar “docker container ls” para garantir que o contêiner está disponível
d. Avançando para acessar este contêiner, você vai querer digitar: “docker exec -it ”
e. Agora você deve estar no seu contêiner no diretório “/”
f. Este exploit foi encontrado na versão 4.13 do kernel; precisamos garantir que essa seja a versão que nosso ambiente de trabalho está executando i. Para verificar, digite: uname -r
g. A partir daqui, você encontra o diretório do kernel digitando: “cd sys/kernel”
h. A partir daqui, não fiz muito progresso, pois não consegui encontrar uma maneira de fazer downgrade para o kernel 4.13
i. Também tentei fazer downgrade usando máquinas virtuais, mas isso não funcionou também
REFERÊNCIAS:
● oss-security - [CVE-2021-3653, CVE-2021-3656] Problemas de virtualização aninhada SVM no KVM (openwall.com) ○ Esta é uma visão geral de duas vulnerabilidades encontradas no código AMD do KVM para virtualização aninhada suportada
● Este é o PATCH: kvm/kvm.git - máquina virtual baseada em kernel - kvm
● KVM: SVM: Enable Virtual VMLOAD VMSAVE feature · torvalds/linux@89c8a49 (github.com) ○ Este é o código vulnerável
● RHSA-2021:3676 - Aviso de Segurança - Red Hat Customer Portal
● CVE-2021-3656- Red Hat Customer Portal ○ Descrição do exploit pela Red Hat
● 1983988 – (CVE-2021-3656) CVE-2021-3656 kernel: problema de virtualização aninhada SVM no KVM (VMLOAD/VMSAVE) (redhat.com)
● O que é KVM? (redhat.com) ○ Explicação sobre o que é um KVM
● Como verificar a versão do kernel Linux na linha de comando (4 opções fáceis) (phoenixnap.com)
● Artigos/vídeos sobre como fazer downgrade do kernel Linux
○ Como fazer downgrade do kernel no Linux - Make Tech Easier ○ Como fazer downgrade da versão 2 para a versão 1 do WSL - MSSQL DBA Blog (peter-whyte.com) ○ Série Linux - 2.1.5 Atualizando/Rebaixando o kernel Linux - YouTube
● Como verificar se o KVM está instalado no Ubuntu Linux - Linux Shout (how2shout.com) ○ É necessário ter KVM para este exploit
● Como instalar QEMU/KVM no Ubuntu 22.04 | 20.04 LTS - Linux Shout (how2shout.com)
● Como instalar o kernel Linux 4.13 no Ubuntu e Linux Mint? (fossbytes.com) ○ Como instalar o kernel Linux 4.13