Pesquisadores de segurança descobriram duas novas falhas que afetam diretamente o GRUB2, responsável pela inicialização do sistema nos computadores. Então, esses problemas podem levar à execução de código ao usar fontes especialmente criadas e manipular certas sequências Unicode.
As vulnerabilidades podem servir para ignorar o mecanismo de inicialização verificada UEFI Secure Boot. As vulnerabilidades no GRUB2 permitem que o código tenha execução no estágio após a verificação bem-sucedida do shim. No entanto, antes que o sistema operacional carregue, quebrando a cadeia de confiança com o modo Secure Boot ativo e obtendo controle total sobre o processo pós-inicialização, por exemplo, Por exemplo, para iniciar outro sistema operacional, modificar componentes do sistema operacional e ignorar a proteção de bloqueio.
Relativamente às vulnerabilidades identificadas, refere-se o seguinte:
CVE-2022-2601: Um estouro de buffer na função grub_font_construct_glyph() ao processar fontes especialmente criadas no formato pf2, que ocorre devido ao cálculo incorreto do parâmetro max_glyph_size e à alocação de uma área de memória obviamente menor do que o necessário para colocar glifos.
CVE-2022-3775: Escrita fora dos limites ao renderizar algumas sequências Unicode em uma fonte personalizada. O problema está presente no código de manipulação da fonte. A causa é a falta de controles adequados para garantir que a largura e a altura do glifo correspondam ao tamanho do bitmap disponível.
Um invasor pode colher a entrada. Assim, faz com que uma fila de dados seja gravada no buffer alocado. Note-se que, apesar da complexidade de explorar a vulnerabilidade, expor o problema à execução do código não está excluído.
A mitigação total contra todos os CVEs exigirá correções atualizadas com o SBAT (Secure Boot Advanced Targeting) mais recente e dados fornecidos por distribuições e fornecedores.
Desta vez a lista de revogação UEFI (dbx) não será utilizada e a revogação dos artefatos quebrados será feita apenas com SBAT. Para obter informações sobre como aplicar as revogações SBAT mais recentes, consulte mokutil(1). As correções do fornecedor podem permitir explicitamente a inicialização de artefatos de inicialização conhecidos mais antigos.
GRUB2, shim e outros artefatos de inicialização de todos os fornecedores afetados serão atualizados. estará disponível quando o embargo for levantado ou algum tempo depois.
Pesquisadores descobrem duas falhas no GRUB2
Menciona-se que a maioria das distribuições Linux usa uma pequena camada de patch , assinada digitalmente pela Microsoft, para inicialização verificada no modo UEFI Secure Boot. Essa camada verifica o GRUB2 com seu próprio certificado , permitindo que os desenvolvedores de distribuição não certifiquem cada atualização de kernel e GRUB com a Microsoft.
Para bloquear a vulnerabilidade sem revogar a assinatura digital, as distribuições podem usar o mecanismo SBAT (UEFI Secure Boot Advanced Targeting), que tem suporte por GRUB2, shim e fwupd nas distribuições Linux mais populares.
O SBAT foi em colaboração com a Microsoft. Ele envolve a adição de metadados adicionais aos arquivos executáveis ??do componente UEFI, incluindo fabricante, produto, componente e informações de versão. Os metadados têm assinatura digital. Eles podem estar em listas separadas de componentes permitidos ou proibidos para UEFI Secure Boot.
Mais novidades
O SBAT permite que você bloqueie o uso de uma assinatura digital para números de versão de componentes individuais sem a necessidade de revogar chaves para inicialização segura. O bloqueio de vulnerabilidades via SBAT não requer o uso de UEFI CRL (dbx), mas é feito no nível de substituição da chave interna para gerar assinaturas e atualizar GRUB2, shim e outros artefatos de inicialização fornecidos pelas distribuições.
Antes da introdução do SBAT, a atualização da lista de certificados revogados (dbx, UEFI Revocation List) era um pré-requisito para bloquear completamente a vulnerabilidade, pois um invasor, independentemente do sistema operacional usado, poderia usar uma mídia inicializável com uma versão mais antiga vulnerável do GRUB2 certificado por uma assinatura digital para comprometer o UEFI Secure Boot.
Por fim , vale ressaltar que a solução saiu como um patch para corrigir problemas no GRUB2. Porém, não basta atualizar o pacote, você também terá que criar novas assinaturas digitais internas e atualizar os instaladores, bootloaders, pacotes de kernel, fwupd-firmware e shim-layer.
O status de correção de vulnerabilidade nas distribuições está nestas páginas: Ubuntu, SUSE, RHEL, Fedora e Debian. Além disso, você pode conferir mais sobre isso no link a seguir.