Falha crítica no carregador de inicialização Shim afeta principais distribuições do Linux
8 de Fevereiro de 2024

Uma vulnerabilidade crítica no bootloader Shim Linux permite que os atacantes executem código e assumam o controle de um sistema-alvo antes que o kernel seja carregado, contornando os mecanismos de segurança existentes.

O Shim é um pequeno bootloader de código aberto mantido pela Red Hat, projetado para facilitar o processo de Inicialização Segura (Secure Boot) em computadores que usam a Interface de Firmware Extensível Unificada (UEFI).

A ferramenta é assinada com uma chave da Microsoft, aceita por padrão na maioria das placas-mãe UEFI, que é usada para verificar a próxima etapa do processo de inicialização, geralmente carregando o bootloader GRUB2.

O Shim foi criado por necessidade para permitir que projetos de código aberto como as distribuições Linux se beneficiassem das vantagens do Secure Boot, como prevenir a execução de código não autorizado ou malicioso durante a inicialização, mantendo o controle sobre o hardware.

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 para Shim, que é usada para inicializar uma imagem de rede via HTTP.

"Ao recuperar arquivos via HTTP ou protocolos similares, o shim tenta alocar um buffer para armazenar os dados recebidos", lê-se no commit para corrigir o bug em httpboot.c.

"Infelizmente, isso significa obter o tamanho a partir de um cabeçalho HTTP, que pode ser manipulado para especificar um tamanho menor do 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 se tornaram disponíveis em 2 de fevereiro de 2024, com a Eclypsium publicando um relatório ontem para chamar a atenção para este problema de segurança.

A vulnerabilidade reside na análise do Shim das respostas HTTP, permitindo a um invasor criar solicitações HTTP especialmente elaboradas para causar uma gravação fora dos limites.

Isso poderia permitir a um invasor comprometer um sistema executando código privilegiado antes do sistema operacional carregar, contornando efetivamente os mecanismos de segurança implementados pelo kernel e pelo sistema operacional.

A Eclypsium diz que várias rotas de exploração potenciais podem alavancar o CVE-2023-40547 , incluindo pontos de ataque local, adjacente à rede e remoto.

O relatório da empresa destaca os três métodos seguintes:

- Um atacante remoto pode executar um ataque de homem no meio (MitM), interceptando o tráfego HTTP para HTTP boot, potencialmente de qualquer posição de rede entre a vítima e o servidor.

- Um atacante local com privilégios suficientes pode modificar as Variáveis ​​EFI ou a partição EFI usando um USB Linux ao vivo para alterar a ordem de inicialização e carregar um shim comprometido, executando código privilegiado sem desativar o Secure Boot.

- Um atacante na mesma rede pode usar o PXE para carregar um bootloader shim comprometido, explorando a vulnerabilidade.

A Red Hat emitiu um commit de código para corrigir o CVE-2023-40547 em 5 de dezembro de 2023, mas as distribuições Linux que suportam Secure Boot e usam Shim precisam implementar suas próprias correções.

Distribuições Linux que utilizam o Shim, como Red Hat, Debian, Ubuntu e SUSE, publicaram avisos 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 outras cinco vulnerabilidades importantes.

A Eclypsium explica que os usuários do Linux também devem atualizar o DBX da Inicialização Segura UEFI (lista de revogação) para incluir os hashes do software Shim vulnerável e assinar a versão corrigida com uma chave Microsoft válida.

Para fazer isso, primeiro atualize para o Shim 15.8 e, em seguida, aplique a atualização do DBX usando o comando 'fwupdmgr update' (precisa do fwupd).

Algumas distribuições Linux oferecem uma ferramenta de interface gráfica para realizar esta atualização, portanto, verifique no seu gerenciador de pacotes antes de entrar no terminal.

Embora seja improvável que o CVE-2023-40547 seja explorado em massa, não é um bug que deve ser ignorado, pois a execução de código antes da inicialização do sistema operacional é uma das formas mais fortes e discretas de comprometimento do sistema.

Publicidade

Pentest do Zero ao Profissional

O mais completo curso de Pentest e Hacking existente no Brasil, ministrado por instrutores de referência no mercado. Oferece embasamento sólido em computação, redes, Linux e programação. Passe por todas as fases de um Pentest utilizando ambientes realísticos. Se prepare para o mercado através da certificação SYCP. Saiba mais...