PixieFail: una serie de vulnerabilidades en la pila de red de Tianocore EDK2
Los investigadores de seguridad de QuarksLab, dieron a conocer mediante una publicación de blog la noticia de que identificaron 9 vulnerabilidades en la interfaz UEFI basado en la plataforma abierta TianoCore EDK2, habitualmente utilizada en sistemas de servidores.
Bautizada como PixieFAIL, esta serie de vulnerabilidades están presentes en la pila de firmware de red utilizada para organizar el arranque de red (PXE) amenazando la explotación a nivel de firmware. La explotación exitosa, posible durante el proceso de inicio de la red, puede permitir llevar a cabo ataques de denegación de servicio, realizar fugas de información, ejecución remota de código, envenenar la caché de DNS y secuestrar sesiones de red.
Sobre PixieFail
Los investigadores de seguridad de QuarksLab mencionan que las vulnerabilidades más peligrosas permiten que un atacante no autenticado ejecute código remoto a nivel de firmware en sistemas que permiten el arranque PXE a través de una red IPv6.
Mientras que las vulnerabilidades menos graves pueden causar denegación de servicio (bloqueo de arranque), filtración de información, envenenamiento de la caché DNS y secuestro de sesión TCP. La mayoría de las vulnerabilidades pueden ser explotadas desde la red local, aunque algunas también pueden ser atacadas desde una red externa.
«Esto generalmente se hace en varias etapas, comenzando con un programa mínimo que se descarga desde un servidor de red usando un protocolo simple, como TFTP, que luego descarga y ejecuta una segunda etapa de arranque o la imagen completa del sistema operativo».
En su publicación de blog, detallan que el firmware UEFI basado en la plataforma TianoCore EDK2 se utiliza en muchas grandes empresas, proveedores de nube, centros de datos y clústeres informáticos. En particular, el módulo vulnerable NetworkPkg con implementación de arranque PXE se utiliza en firmware desarrollado por ARM, Insyde Software, American Megatrends, Phoenix Technologies ( SecureCore ), Intel, Dell y Microsoft.
También se creía que las vulnerabilidades afectaban a la plataforma ChromeOS, que tiene un paquete EDK2 en el repositorio, pero Google dijo que este paquete no se utiliza en el firmware para Chromebooks y que la plataforma ChromeOS no se ve afectada por el problema.
Un escenario de ataque típico implica monitorear el tráfico en una red local y enviar paquetes especialmente diseñados cuando se detecta actividad relacionada con el inicio del sistema a través de PXE. No se necesita acceso al servidor de descarga o al servidor DHCP. Como demostración de la técnica de ataque, se han publicado prototipos de exploits.
Vulnerabilidades identificadas:
- CVE-2023-45230: Desbordamiento de búfer en el código del cliente DHCPv6, explotado al pasar un ID de servidor demasiado larga (opción ID de servidor).
- CVE-2023-45234: se produce un desbordamiento del búfer al procesar una opción con parámetros de servidor DNS pasados en un mensaje que anuncia la presencia de un servidor DHCPv6.
- CVE-2023-45235: Desbordamiento del búfer al procesar la opción ID del servidor en mensajes de anuncio de proxy DHCPv6.
- CVE-2023-45229: es un desbordamiento insuficiente de enteros que se produce durante el procesamiento de las opciones IA_NA/IA_TA en mensajes DHCPv6 que anuncian un servidor DHCP.
- CVE-2023-45231: Se produce una fuga de datos fuera del búfer al procesar mensajes de redireccionamiento ND (descubrimiento de vecinos) con valores de opción truncados.
- CVE-2023-45232: Se produce un bucle infinito al analizar opciones desconocidas en el encabezado Opciones de destino.
- CVE-2023-45233: Se produce un bucle infinito al analizar la opción PadN en el encabezado del paquete.
- CVE-2023-45236: uso de semillas de secuencia TCP predecibles para permitir la conexión TCP.
- CVE-2023-45237: uso de un generador de números pseudoaleatorios poco confiable que produce valores predecibles.
Se menciona que las vulnerabilidades se presentaron al CERT/CC el 3 de agosto de 2023 y la fecha de divulgación estaba programada para el 2 de noviembre. Sin embargo, debido a la necesidad de un lanzamiento de parche coordinado entre varios proveedores, la fecha de lanzamiento se retrasó inicialmente hasta el 1 de diciembre, luego se retrasó hasta el 12 de diciembre y el 19 de diciembre de 2023, pero finalmente se reveló el hasta este mes de enero de 2024. Al mismo tiempo, Microsoft pidió posponer la publicación de información hasta mayo.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.