Se ha revelado información sobre la vulnerabilidad (CVE-2023-4001) en los parches del cargador GRUB2, preparados por Red Hat. La vulnerabilidad permite eludir la verificación de contraseña establecida en GRUB2 para restringir el acceso al menú de arranque o la línea de comandos del cargador en muchos sistemas con UEFI. Esta vulnerabilidad se debe a un cambio realizado por Red Hat en el paquete de GRUB2 que se entrega en RHEL y Fedora Linux. El problema no se manifiesta en el proyecto principal de GRUB2 y solo afecta a las distribuciones que han aplicado parches adicionales de Red Hat.
El problema se debe a un error en la lógica de uso del UUID para que el cargador localice el dispositivo con el archivo de configuración (por ejemplo, «/boot/efi/EFI/fedora/grub.cfg») que contiene el hash de la contraseña. Para eludir la autenticación, un usuario con acceso físico a la computadora puede conectar un dispositivo externo, como una memoria USB, asignándole un UUID que coincide con el identificador de la partición de arranque /boot del sistema atacado.
Muchos sistemas UEFI, en primer lugar, procesan los dispositivos externos y los colocan en la lista de dispositivos detectados antes que los discos duros internos, por lo que la partición /boot preparada por el atacante tendrá mayor prioridad durante el procesamiento, y, en consecuencia, GRUB2 intentará cargar el archivo de configuración desde esa partición. En el proceso de búsqueda de la partición mediante el comando «search» en GRUB2, se determina únicamente la primera coincidencia del UUID, tras lo cual se detiene la búsqueda. Si el archivo de configuración principal no se encuentra en la partición determinada, GRUB2 mostrará un indicador de comandos, permitiendo un control total sobre el proceso de arranque posterior.
Para determinar el UUID de la partición, un usuario local sin privilegios puede usar la herramienta «lsblk», pero un usuario externo que no tiene acceso al sistema, pero puede observar el proceso de arranque, en algunas distribuciones puede identificar el UUID a partir de los mensajes de diagnóstico que se muestran durante el arranque. Red Hat ha solucionado la vulnerabilidad agregando un nuevo argumento al comando «search» que permite restringir la operación de escaneo de UUID solo a los dispositivos de bloque utilizados para iniciar el gestor de arranque (es decir, la partición /boot debe estar en el mismo disco que la partición EFI del sistema).
Fuente: opennet.ru
