Informações sobre a vulnerabilidade (CVE-2023-4001) nos patches do carregador GRUB2, preparados pela Red Hat, foram reveladas. Essa vulnerabilidade permite que, em muitos sistemas com UEFI, se contorne a verificação da senha definida no GRUB2 para restringir o acesso ao menu de inicialização ou ao prompt de comando do carregador. A vulnerabilidade foi causada por uma alteração adicionada pela Red Hat ao pacote GRUB2 fornecido no RHEL e no Fedora Linux. O problema não ocorre no projeto principal do GRUB2 e afeta apenas as distribuições que aplicaram patches adicionais da Red Hat.
O problema é causado por um erro na lógica de uso do UUID para que o carregador encontre o dispositivo com o arquivo de configuração (por exemplo, "/boot/efi/EFI/fedora/grub.cfg") que contém o hash da senha. Para contornar a autenticação, um usuário com acesso físico ao computador pode conectar um dispositivo externo, como um pen drive USB, atribuindo a ele um UUID que replica o identificador da partição de inicialização /boot do sistema atacado.
Muitos sistemas UEFI lidam prioritariamente com dispositivos externos e os colocam na lista de dispositivos detectados antes dos dispositivos fixos, portanto, a partição /boot preparada pelo atacante terá prioridade no processamento, e, consequentemente, o GRUB2 tentará carregar o arquivo de configuração a partir dessa partição. Durante a busca da partição com o comando "search" no GRUB2, apenas a primeira correspondência do UUID é determinada, após a qual a busca é encerrada. Se o arquivo de configuração principal não for encontrado em uma determinada partição, o GRUB2 exibirá um prompt de comando, permitindo total controle sobre o processo de inicialização subsequente.
Um usuário local não privilegiado pode usar a ferramenta "lsblk" para determinar o UUID da partição, mas um usuário externo, sem acesso ao sistema, mas capaz de observar o processo de inicialização, pode, em algumas distribuições, determinar o UUID a partir das mensagens de diagnóstico exibidas durante a inicialização. A vulnerabilidade foi corrigida pela Red Hat através da adição de um novo argumento ao comando "search", que limita a operação de escaneamento do UUID apenas aos dispositivos de bloco usados para inicializar o gerenciador de inicialização (ou seja, a partição /boot deve estar no mesmo disco que a partição EFI do sistema).
Fonte: opennet.ru
