Fueron identificadas 8 vulnerabilidades en GRUB2 que permiten la ejecución de codigo no verificado

Hace poco se dio a conocer información sobre 8 vulnerabilidades en el cargador de arranque GRUB2, que permite omitir el mecanismo de arranque seguro UEFI y hacer que se ejecute código no verificado, por ejemplo, para inyectar malware que se ejecuta en el nivel del cargador de arranque o del kernel.

Hay que recordar que en la mayoría de las distribuciones de Linux, para el arranque verificado en el modo de arranque seguro UEFI, se utiliza una pequeña capa de compensación certificada por una firma digital de Microsoft.

Esta capa verifica GRUB2 con su propio certificado, lo que permite a los desarrolladores no certificar cada kernel y actualización de GRUB a Microsoft.

Con ello las vulnerabilidades en GRUB2 permiten lograr la ejecución de su código en la etapa posterior a la verificación exitosa de la corrección, pero antes de que se cargue el sistema operativo, encajándose en la cadena de confianza cuando Secure Boot está activo y obteniendo control total sobre el proceso de arranque posterior, incluido para arrancar otro sistema operativo, modifique el sistema de componentes del sistema operativo y omita el bloqueo de protección.

Al igual que en el caso de la vulnerabilidad BootHole del año pasado, actualizar el gestor de arranque no es suficiente para bloquear el problema, ya que un atacante, independientemente del sistema operativo utilizado, puede utilizar medios de arranque con una antigua versión vulnerable de GRUB2, certificada con firma digital, para comprometer UEFI Secure Boot.

El problema se resuelve solo actualizando la lista de certificados revocados (dbx, UEFI Revocation List), pero en este caso, se perderá la capacidad de utilizar medios de instalación antiguos con Linux.

En los sistemas con firmware en los que se ha actualizado la lista de certificados revocados, solo se pueden cargar conjuntos actualizados de distribuciones de Linux en el modo de arranque seguro UEFI.

Las distribuciones necesitarán actualizar los instaladores, los cargadores de arranque, los paquetes del kernel, el firmware fwupd y la capa de compensación mediante la generación de nuevas firmas digitales para ellos.

Los usuarios deberán actualizar las imágenes de instalación y otros medios de arranque y descargar la lista de revocación de certificados (dbx) en el firmware UEFI. Hasta la actualización de dbx en UEFI, el sistema sigue siendo vulnerable independientemente de la instalación de actualizaciones en el sistema operativo.

Para resolver los problemas derivados de la distribución de certificados revocados, se prevé utilizar el mecanismo SBAT en el futuro (UEFI Secure Boot Advanced Targeting), que ahora es compatible con GRUB2, shim y fwupd, y reemplazará la funcionalidad proporcionada por el paquete dbxtool en futuras actualizaciones.  SBAT fue desarrollado en conjunto con Microsoft para agregar nuevos metadatos a archivos ejecutables de componentes UEFI, que incluyen información sobre el fabricante, producto, componente y versión.

De las vulnerabilidades identificadas:

  1. CVE-2020-14372: con el comando acpi en GRUB2, el usuario privilegiado del sistema local puede cargar tablas ACPI modificadas colocando una SSDT (tabla de descripción del sistema secundario) en el directorio /boot/efi y cambiando la configuración en grub.cfg.
  2. CVE-2020-25632: acceso a un área de memoria ya liberada (use-after-free) en la implementación del comando rmmod, que se manifiesta cuando se intenta descargar cualquier módulo sin tener en cuenta sus dependencias asociadas.
  3. CVE-2020-25647: escritura fuera de los límites del búfer en la función grub_usb_device_initialize () llamada al inicializar dispositivos USB. El problema se puede aprovechar conectando un dispositivo USB especialmente preparado que genere parámetros que no coincidan con el tamaño del búfer asignado para las estructuras USB.
  4. CVE-2020-27749: desbordamiento del búfer en grub_parser_split_cmdline () que puede deberse a la especificación de variables superiores a 1 KB en la línea de comandos de GRUB2. La vulnerabilidad podría permitir la ejecución de código sin pasar por el arranque seguro.
  5. CVE-2020-27779: el comando cutmem permite a un atacante eliminar un rango de direcciones de la memoria para omitir el arranque seguro.
  6. CVE-2021-3418: los cambios en shim_lock crearon un vector adicional para explotar la vulnerabilidad CVE-2020-15705 del año pasado. Al instalar el certificado utilizado para firmar el GRUB2 en dbx, GRUB2 permitió que cualquier kernel se cargara directamente sin verificar la firma.
  7. CVE-2021-20225: la capacidad de escribir datos fuera del búfer cuando se ejecutan comandos con una gran cantidad de opciones.
  8. CVE-2021-20233: capacidad para escribir datos fuera del búfer debido a un cálculo incorrecto del tamaño del búfer cuando se utilizan comillas. Al calcular el tamaño, se asumió que se necesitan tres caracteres para escapar de una sola comilla, aunque en realidad se necesitan cuatro.

Fuente: https://ubuntu.com


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.