Los desarrolladores de Shim han lanzado la versión 15.8 para abordar diversas vulnerabilidades de seguridad, entre las cuales destaca una crítica identificada como CVE-2023-40547, con una puntuación CVSS de 9,8. Esta vulnerabilidad podría ser aprovechada para realizar una omisión en el arranque seguro, creando así una posible vía para la ejecución remota de código en circunstancias específicas.

El mérito de descubrir e informar sobre este error se atribuye a Bill Demirkapi del Centro de Respuesta de Seguridad de Microsoft (MSRC). La vulnerabilidad radica en el soporte de arranque http del shim (httpboot.c), que confía en valores controlados por un atacante al analizar una respuesta HTTP. Esto conduce a una primitiva de escritura fuera de límites completamente controlada, según lo señalado por Alan Coopersmith de Oracle en un mensaje compartido en la lista de correo Open Source Security, oss-seguridad.

En una publicación compartida en X (anteriormente Twitter) a finales del mes pasado, Demirkapi reveló que la vulnerabilidad en cuestión “afecta a todos los cargadores de arranque de Linux firmados en la última década”. Shim, descrito como un paquete de software “trivial”, opera como un cargador de arranque de primera etapa en sistemas que utilizan la Interfaz de Firmware Extensible Unificada (UEFI).

La firma de seguridad de firmware, Eclypsium, explicó que CVE-2023-40547 tiene su origen en el manejo del protocolo HTTP, dando lugar a una escritura fuera de límites que puede comprometer por completo el sistema. En un escenario de ataque hipotético, un actor de amenazas en la misma red podría aprovechar la vulnerabilidad para cargar un cargador de arranque de shim vulnerable. Alternativamente, un adversario local con privilegios adecuados podría manipular datos en la partición EFI.

La compañía advirtió sobre la posibilidad de un ataque Man-in-the-Middle (MiTM), donde un atacante podría interceptar el tráfico HTTP entre la víctima y el servidor utilizado para servir archivos para el arranque HTTP. Este atacante podría ubicarse en cualquier segmento de la red entre la víctima y el servidor legítimo.

Obtener la capacidad de ejecutar código durante el proceso de arranque, antes de que el sistema operativo principal se inicie, otorga al atacante un control prácticamente total sobre el host comprometido. Esto permite la implementación de kits de arranque sigilosos que pueden proporcionar un control integral sobre el sistema afectado.

Las otras cinco vulnerabilidades abordadas en la versión 15.8 de shim se detallan a continuación:

  • CVE-2023-40546 (CVSS: 5,3): Se trata de una lectura fuera de límites al imprimir mensajes de error, generando así una condición de denegación de servicio (DoS).
  • CVE-2023-40548 (CVSS: 7,4): Esta vulnerabilidad implica un desbordamiento de búfer en shim cuando se compila para procesadores de 32 bits, lo que puede provocar fallos o problemas de integridad de los datos durante la fase de arranque.
  • CVE-2023-40549 (CVSS: 5,5): Aquí, se presenta una lectura fuera de límites en la función de código de autenticación que podría permitir a un atacante activar un DoS al proporcionar un binario con formato incorrecto.
  • CVE-2023-40550 (CVSS: 5,5): Esta vulnerabilidad implica una lectura fuera de límites al validar información de orientación avanzada de arranque seguro (SBAT), lo que podría resultar en la divulgación de información.
  • CVE-2023-40551 (CVSS: 7,1): En este caso, se encuentra una lectura fuera de límites al analizar archivos binarios de MZ, lo que puede provocar un bloqueo o una posible exposición de datos confidenciales.

Según Eclypsium, “un atacante que explota esta vulnerabilidad obtiene el control del sistema antes de que se cargue el kernel, lo que significa que tiene acceso privilegiado y la capacidad de eludir cualquier control implementado por el kernel y el sistema operativo”.