Pesquisadores acham 8 vulnerabilidades no GRUB2 que permitem a execução de código não verificado

Pesquisadores acham 8 vulnerabilidades no GRUB2 que permitem a execução de código não verificado

Recentemente, alguns pesquisadores em segurança acharam 8 vulnerabilidades no GRUB2 e elas permitem a execução de código não verificado. Essas falhas permitem contornar o mecanismo de inicialização segura UEFI. Assim, faz com que haja execução do código sem qualquer verificação.  Então, isso permite, por exemplo, injetar malware para execução no boot do carregador ou kernel.

Na maioria das distribuições Linux, para inicialização verificada no modo de inicialização segura UEFI, há uma pequena camada de compensação certificada por uma assinatura digital da Microsoft é usada.

Essa camada verifica o GRUB2 em relação ao seu próprio certificado, permitindo que os desenvolvedores não certifiquem todos os kernel e atualizem do GRUB para a Microsoft.

Com isso, as vulnerabilidades no GRUB2 permitem atingir a execução do seu código na etapa após a verificação bem sucedida da correção, mas antes que o sistema operacional seja carregado. Assim, se encaixao na cadeia de confiança quando a inicialização segura está ativa e obtendo controle total sobre o processo de inicialização subsequente. Isso inclui inicializar outro sistema operacional, modificar o sistema de componentes do sistema operacional e ignorar o bloqueio de proteção.

Pesquisadores acham 8 vulnerabilidades no GRUB2 que permitem a execução de código não verificado

Pesquisadores acham 8 vulnerabilidades no GRUB2 que permitem a execução de código não verificado

Como no caso da vulnerabilidade BootHole do ano passado, atualizar o bootloader não é suficiente para bloquear o problema , pois um invasor, independentemente do sistema operacional usado, pode usar a mídia de inicialização com uma versão antiga e vulnerável do GRUB2, certificada com assinatura digital, comprometer o UEFI Secure Boot.

O problema é resolvido apenas com a atualização da lista de certificados revogados (dbx, UEFI Revocation List). Entretanto, neste caso, a capacidade de usar a mídia de instalação antiga com o Linux será perdida.

Em sistemas com firmware em que a lista de certificados revogados foi atualizada, conjuntos de distribuições Linux só podem ser carregados no modo UEFI Secure Boot.

As distribuições precisarão atualizar:

instaladores, carregadores de inicialização, pacotes do kernel, firmware fwupd e a camada de compensação gerando novas assinaturas digitais para eles.

Os usuários precisarão atualizar:

as imagens de instalação e outras mídias de inicialização e baixar a lista de certificados revogados (dbx) no firmware UEFI. 

Até a atualização do dbx na UEFI, o sistema permanece vulnerável, independentemente da instalação de atualizações no sistema operacional.

Para resolver os problemas decorrentes da distribuição de certificados revogados, está planejado o uso do mecanismo SBAT no futuro (UEFI Secure Boot Advanced Targeting), que agora suporta GRUB2, shim e fwupd, e substituirá a funcionalidade pelo pacote dbxtool em atualizações futuras. SBAT foi desenvolvido em conjunto com a Microsoft para adicionar novos metadados aos arquivos executáveis ??do componente UEFI , incluindo fabricante, produto, componente e informações de versão.

Quais são as vulnerabilidades identificadas?

  1. CVE-2020-14372: com o comando acpi no GRUB2, o usuário privilegiado no sistema local pode carregar tabelas ACPI modificadas colocando um SSDT (tabela de descrição secundária do sistema) no diretório /boot /efi e alterando as configurações em grub.cfg .
  2. CVE-2020-25632: acesso a uma área de memória já liberada (use-after-free) na implementação do comando rmmod, que se manifesta ao tentar baixar algum módulo sem levar em consideração suas dependências associadas.
  3. CVE-2020-25647: gravar fora dos limites do buffer na função grub_usb_device_initialize () chamada ao inicializar dispositivos USB. O problema pode ser explorado conectando um dispositivo USB especialmente preparado que gera parâmetros que não correspondem ao tamanho do buffer alocado para estruturas USB.
  4. CVE-2020-27749: estouro de buffer em grub_parser_split_cmdline () que pode ser causado pela especificação de variáveis ??maiores que 1 KB na linha de comando GRUB2. A vulnerabilidade pode permitir a execução de código sem passar pela inicialização segura.
  5. CVE-2020-27779: O comando cutmem permite que um invasor remova um intervalo de endereços da memória para ignorar a inicialização segura.
  6. CVE-2021-3418: Mudanças em shim_lock criaram um vetor adicional para explorar a vulnerabilidade CVE-2020-15705 do ano passado. Ao instalar o certificado usado para assinar GRUB2 no dbx, GRUB2 permitiu que qualquer kernel carregasse diretamente sem verificar a assinatura.
  7. CVE-2021-20225: capacidade de gravar dados fora do buffer ao executar comandos com um grande número de opções.
  8. CVE-2021-20233: capacidade de gravar dados fora do buffer devido ao cálculo incorreto do tamanho do buffer ao usar aspas. Ao calcular o tamanho, foi assumido que três caracteres são necessários para escapar de uma aspa simples, embora quatro sejam realmente necessários.

Mais informações em https://ubuntu.com