Vulnerabilidad crítica en el gestor de arranque GRUB2 que permite omitir el arranque seguro UEFI

En el gestor de arranque GRUB2 revelado 8 vulnerabilidades. Mas peligroso problema (CVE-2020-10713), cuyo nombre en código es BootHole, dar una oportunidad omita el mecanismo de arranque seguro UEFI e instale malware no verificado. La peculiaridad de esta vulnerabilidad es que para eliminarla no basta con actualizar GRUB2, ya que el atacante puede utilizar un dispositivo de arranque con una versión antigua vulnerable certificada con firma digital. Un atacante puede comprometer el proceso de verificación no solo de Linux, sino también de otros sistemas operativos, incluido Windows.

El problema sólo se puede solucionar actualizando el sistema. lista de revocación de certificados (dbx, Lista de revocación UEFI), pero en este caso se perderá la capacidad de utilizar medios de instalación antiguos con Linux. Algunos fabricantes de equipos ya han incluido una lista actualizada de certificados de revocación en su firmware; en dichos sistemas, solo se pueden cargar versiones actualizadas de distribuciones de Linux en el modo UEFI Secure Boot.

Para eliminar la vulnerabilidad en las distribuciones, también deberá actualizar los instaladores, los cargadores de arranque, los paquetes del kernel, el firmware fwupd y la capa shim, generando nuevas firmas digitales para ellos. Los usuarios deberán actualizar las imágenes de instalación y otros medios de arranque, así como cargar una lista de revocación de certificados (dbx) en el firmware UEFI. Antes de actualizar dbx a UEFI, el sistema sigue siendo vulnerable independientemente de la instalación de actualizaciones en el sistema operativo.

Vulnerabilidad causado un desbordamiento de búfer que puede explotarse para ejecutar código arbitrario durante el proceso de arranque.
La vulnerabilidad ocurre al analizar el contenido del archivo de configuración grub.cfg, que generalmente se encuentra en ESP (partición del sistema EFI) y puede ser editado por un atacante con derechos de administrador sin violar la integridad de los archivos ejecutables de GRUB2 y shim firmados. Porque Errores en el código del analizador de configuración, el controlador de errores fatales de análisis YY_FATAL_ERROR solo mostró una advertencia, pero no finalizó el programa. El riesgo de vulnerabilidad se reduce por la necesidad de tener acceso privilegiado al sistema, sin embargo, el problema puede ser necesario para introducir rootkits ocultos si se tiene acceso físico al equipo (si es posible arrancar desde su propio medio).

La mayoría de las distribuciones de Linux utilizan un pequeño capa de calza, firmado digitalmente por Microsoft. Esta capa verifica GRUB2 con su propio certificado, lo que permite a los desarrolladores de distribuciones no tener cada kernel y actualización de GRUB certificados por Microsoft. La vulnerabilidad permite, al cambiar el contenido de grub.cfg, lograr la ejecución de su código en la etapa posterior a la verificación exitosa del shim, pero antes de cargar el sistema operativo, ingresando a la cadena de confianza cuando el modo de arranque seguro está activo y obteniendo control total. sobre el proceso de arranque posterior, incluida la carga de otro sistema operativo, la modificación de los componentes del sistema operativo y eludir la protección Lockdown.

Vulnerabilidad crítica en el gestor de arranque GRUB2 que permite omitir el arranque seguro UEFI

Otras vulnerabilidades en GRUB2:

  • CVE-2020-14308 — desbordamiento del búfer debido a la falta de verificación del tamaño del área de memoria asignada en grub_malloc;
  • CVE-2020-14309 - un desbordamiento de enteros en grub_squash_read_symlink, que puede provocar que los datos se escriban más allá del búfer asignado;
  • CVE-2020-14310 - desbordamiento de enteros en read_section_from_string, lo que puede provocar que se escriban datos más allá del búfer asignado;
  • CVE-2020-14311 - un desbordamiento de enteros en grub_ext2_read_link, que puede provocar que los datos se escriban más allá del búfer asignado;
  • CVE-2020-15705 — le permite cargar kernels sin firmar durante el arranque directo en modo de arranque seguro sin una capa de corrección;
  • CVE-2020-15706 — acceso a un área de memoria ya liberada (uso después de la liberación) al redefinir una función en tiempo de ejecución;
  • CVE-2020-15707 — desbordamiento de enteros en el controlador de tamaño initrd.

Se han publicado actualizaciones del paquete de revisiones para Debian, Ubuntu, RHEL и SUSE. Para GRUB2 sugirió conjunto de parches.

Fuente: opennet.ru

Añadir un comentario