Una actualización de Windows impedía el arranque Dual Boot con Linux
Hace algunos días, Microsoft libero una «actualización de seguridad» la cual supuestamente tenía como finalidad «abordar una vulnerabilidad de hace dos años en GRUB», pero lejos de ser de ayuda, la actualización causo diversos problemas significativos en sistemas con arranque dual que utilizan Windows y Linux, y como tal ha resultado en la interrupción del arranque en sistemas con Linux cuando el arranque seguro está habilitado.
La vulnerabilidad que se plantea abordar con dicha actualización es la CVE-2022-2601 en GRUB2, esta vulnerabilidad permite a los atacantes eludir las protecciones de arranque seguro. Como respuesta, Microsoft ha decidido bloquear los cargadores de arranque de Linux que no han sido parcheados contra esta vulnerabilidad, lo que podría impedir el arranque de sistemas Linux junto con Windows en configuraciones de arranque dual.
“La vulnerabilidad relacionada con este CVE se encuentra en GRUB2, el gestor de arranque de Linux que está diseñado para admitir el arranque seguro en sistemas con Linux”, señala Microsoft en un aviso publicado para abordar el problema. «Este hecho se documenta en la Guía de actualización de seguridad, donde se informa que las versiones más recientes de Windows ya no son vulnerables a la omisión de esta medida de seguridad mediante el gestor de arranque GRUB2 de Linux. El valor SBAT no se aplica a los sistemas de arranque dual que ejecutan tanto Windows como Linux y, por lo tanto, no debería afectar a estos sistemas.
Sobre el problema
El arranque dual, que permite a los usuarios instalar y elegir entre dos sistemas operativos en un solo equipo, ha sido afectado negativamente por esta actualización. En particular, los sistemas Linux que utilizan GRUB como gestor de arranque y tienen habilitado el arranque seguro han experimentado fallos tras la actualización.
Según los informes, las actualizaciones de Windows han aplicado una nueva política de SBAT (UEFI Secure Boot Advanced Targeting), diseñada para bloquear los cargadores de arranque de Linux que no han sido actualizados para abordar la vulnerabilidad CVE-2022-2601 en GRUB2. El problema se manifiesta con un mensaje de error que indica
«Error al verificar los datos de SBAT: infracción de la política de seguridad. Algo salió muy mal: falló la autocomprobación de SBAT: infracción de la política de seguridad».
El mecanismo SBAT, desarrollado por Red Hat y Microsoft, se diseñó para bloquear vulnerabilidades en el gestor de arranque GRUB sin necesidad de revocar la firma digital. SBAT añade metadatos a los ejecutables de componentes UEFI, los cuales están certificados con una firma digital y se utilizan para gestionar las listas de componentes permitidos o prohibidos en UEFI Secure Boot. Este sistema permite bloquear versiones específicas de componentes sin revocar claves completas, a diferencia del método anterior que requería la actualización de listas de revocación de certificados UEFI (dbx).
El problema actual parece ser el resultado de una falta de pruebas por parte de Microsoft antes de la implementación del parche, así como de la falta de actualización en algunos gestores de arranque GRUB por parte de los desarrolladores de distribuciones de Linux. Se ha publicado una traducción del análisis detallado del problema por Matthew Garrett, que destaca que tanto Microsoft como algunos desarrolladores de Linux tienen responsabilidad en esta situación.
Sobre el incidente, Microsoft solo emitió una declaración:
“Esta actualización no se aplica cuando se detecta una opción de arranque de Linux. Sin embargo, somos conscientes de que algunos escenarios de arranque dual están generando problemas para algunos usuarios, especialmente cuando se utilizan cargadores de arranque de Linux desactualizados que contienen código vulnerable. Estamos colaborando con nuestros socios de Linux para investigar y resolver este inconveniente”.
Para aquellos que presenten el problema se recomienda que intenten desactivar el arranque seguro en su BIOS/UEFI como una solución temporal, aunque esto podría comprometer la seguridad del sistema.
Otra solución es el eliminar los datos SBAT instalados en UEFI, instalar una nueva distribución de Linux con soporte adecuado para el arranque seguro UEFI (como Ubuntu), ejecutar el comando mokutil --set-sbat-policy
para eliminar la política SBAT y luego volver a habilitar el arranque seguro.