Segundo um pesquisador de segurança da Microsoft, uma falha crítica no bootloader Shim afeta as principais distros Linux.
Shim é um pequeno bootloader de código aberto mantido pela Red Hat que foi projetado para facilitar o processo de inicialização segura em computadores usando Unified Extensible Firmware Interface (UEFI).
A ferramenta é assinada com uma chave da Microsoft aceita por padrão na maioria das placas-mãe UEFI que é usada para verificar o próximo estágio do processo de inicialização, normalmente carregando o gerenciador de inicialização GRUB2.
O Shim foi criado por necessidade para permitir que projetos de código aberto, como distribuições Linux, se beneficiassem das vantagens do Secure Boot, como impedir a execução não autorizada ou de código malicioso durante a inicialização, enquanto ainda mantém o controle sobre o hardware.
Uma vulnerabilidade crítica no bootloader Shim Linux permite que invasores executem código e assumam o controle de um sistema alvo antes que o kernel seja carregado, contornando os mecanismos de segurança existentes.
Falha crítica no bootloader Shim afeta as principais distros Linux
Sim. uma falha crítica no bootloader Shim afeta as principais distros Linux. A nova falha do Shim, rastreada como CVE-2023-40547, foi descoberta pelo pesquisador de segurança da Microsoft, Bill Demirkapi, que a divulgou pela primeira vez em 24 de janeiro de 2024.
O bug reside na fonte httpboot.c do Shim, que é usada para inicializar uma imagem de rede via HTTP.
“Ao recuperar arquivos via HTTP ou protocolos relacionados, o shim tenta alocar um buffer para armazenar os dados recebidos”, diz o commit para corrigir o bug em httpboot.c.
“Infelizmente, isso significa obter o tamanho de um cabeçalho HTTP, que pode ser manipulado para especificar um tamanho menor que os dados recebidos.”
“Nesse caso, o código usa acidentalmente o cabeçalho para a alocação, mas os metadados do protocolo para copiá-lo do buffer rx, resultando em uma gravação fora dos limites.”
Mais detalhes sobre a falha foram disponibilizados em 2 de fevereiro de 2024, com a Eclypsium publicando recentemente um relatório para chamar a atenção para esse problema de segurança.
A vulnerabilidade está na análise de respostas HTTP do Shim, permitindo que um invasor crie solicitações HTTP especialmente criadas para causar uma gravação fora dos limites.
Isso poderia permitir que um invasor comprometesse um sistema executando código privilegiado antes do carregamento do sistema operacional, contornando efetivamente os mecanismos de segurança implementados pelo kernel e pelo sistema operacional.
Eclypsium afirma que vários caminhos de exploração potenciais podem aproveitar o CVE-2023-40547, incluindo pontos de ataque locais, adjacentes à rede e remotos. O relatório da empresa destaca os três métodos a seguir:
Um invasor remoto pode executar um ataque man-in-the-middle (MiTM), interceptando o tráfego HTTP para inicialização HTTP, potencialmente de qualquer posição de rede entre a vítima e o servidor.
Um invasor local com privilégios suficientes pode modificar variáveis EFI ou a partição EFI usando um USB Linux ativo para alterar a ordem de inicialização e carregar um shim comprometido, executando código privilegiado sem desabilitar a inicialização segura.
Um invasor na mesma rede pode usar o PXE para carregar um bootloader shim comprometido, explorando a vulnerabilidade.
Impacto e correções
RedHat emitiu um commit de código para corrigir CVE-2023-40547 em 5 de dezembro de 2023, mas as distribuições Linux que suportam inicialização segura e usam Shim precisam enviar seus próprios patches.
Distribuições Linux que utilizam Shim, como Red Hat, Debian, Ubuntu e SUSE, lançaram comunicados com informações sobre a falha.
Os usuários do Linux são aconselhados a atualizar para a versão mais recente do Shim, v15.8, que contém uma correção para CVE-2023-40547 e cinco outras vulnerabilidades importantes.
Eclypsium explica que os usuários do Linux também devem atualizar o UEFI Secure Boot DBX (lista de revogação) para incluir os hashes do software Shim vulnerável e assinar a versão corrigida com uma chave válida da Microsoft.
Para fazer isso, primeiro atualize para o Shim 15.8 e depois aplique a atualização do DBX usando o comando ‘fwupdmgr update’ (precisa de fwupd).
Algumas distribuições Linux oferecem uma ferramenta GUI para realizar esta atualização, portanto, verifique seu gerenciador de pacotes antes de mergulhar no terminal.
Embora seja improvável que seja explorado em massa, o CVE-2023-40547 não é um bug que deva ser ignorado, pois a execução do código antes da inicialização do sistema operacional é uma das formas mais fortes e furtivas de comprometimento do sistema.