Un fallo en el arranque PXE permite eludir Secure Boot y ejecutar malware con privilegios totales desde la BIOS

Hace pocos días se dio a conocer información sobre una vulnerabilidad crítica (catalogada como CVE-2026-97631, con una severidad CVSS v4 de 9.5) en TianoCore EDK II, la implementación de referencia UEFI de código abierto desarrollada originalmente por Intel.
Este fallo compromete a millones de equipos a nivel mundial, incluyendo servidores de centros de datos, computadoras de escritorio y portátiles de proveedores que utilizan masivamente este código, como AMI, Insyde, Phoenix y la plataforma Project Mu de Microsoft.
Un fallo que ha estado presente mas de 16 años
La falla reside en el controlador PXE-Base Code (UefiPxeBcDxe), responsable del entorno de pre-ejecución de arranque por red (PXE) a través de IPv4 o IPv6. El problema se origina en un desbordamiento de búfer que ha permanecido oculto en el código durante 16 años.
Sin autenticación, antes del arranque, a través de la red, mientras una máquina está arrancando PXE a través de IPv4 o IPv6. El atacante solo necesita enviar un mensaje de error ICMP unicast dirigido a la IP del cliente, desde cualquier distancia de la red; la ventana de exposición es la duración del arranque PXE.
Durante el proceso de arranque por red, el controlador mantiene un oyente (listener) abierto para recibir mensajes de error ICMP y los almacena en un búfer de tamaño fijo de 504 bytes. Sin embargo, debido a una mala implementación en la comprobación de los límites, si el mensaje supera los 504 bytes, el sistema continúa copiando los datos, desbordando el búfer y sobrescribiendo la memoria adyacente del sistema.
Un atacante (que cuente con acceso de bajo nivel a la red local o desde la red global) solo necesita conocer la dirección IP del objetivo y enviar un simple paquete unicast ICMP malicioso justo durante la ventana de arranque PXE. El ataque no requiere autenticación ni interacción del usuario. El daño se manifiesta en dos niveles:
- Denegación de servicio (DoS): Un paquete mal formado provoca una excepción en la CPU dentro del núcleo DXE, bloqueando indefinidamente el proceso de arranque.
- Ejecución de código de alto privilegio: Si el atacante conoce la estructura de memoria de la compilación de firmware específica del servidor, puede inyectar y ejecutar código malicioso directamente en el Entorno de Ejecución de Controladores (DXE), el nivel más privilegiado del procesador (Anillo 0 o Ring 0).
La gravedad de esta ejecución recae en que ocurre antes de que el sistema operativo se inicie, lo que permite al atacante eludir mecanismos de defensa como el Secure Boot y el Arranque Medido (Measured Boot), alterando la cadena de confianza que protege componentes sensibles como el Módulo de Plataforma Confiable (TPM). Aunque el exploit no logra persistencia inmediata (el código inyectado corre una sola vez), esa única ejecución es suficiente para instalar otros programas maliciosos de forma permanente que se activarán en cada arranque.
Solución y mitigación del problema
Inicialmente, la divulgación coordinada del fallo estaba programada para enero de 2027, sin embargo, un ingeniero del proveedor AMI rompió accidentalmente la planeación al publicar una solicitud de extracción (pull request) pública en GitHub con la solución. Esta filtración forzó al proyecto TianoCore a publicar un aviso de seguridad prematuro el 22 de octubre de 2026.
La solución técnica (PR 13302), ya integrada en el código fuente de EDK II, añade comprobaciones de límites adecuadas, corrige la aritmética de punteros para truncar los mensajes excesivos, limpia el búfer antes de cada copia e incorpora pruebas unitarias. A pesar de esto, el peligro inminente radica en que los desarrolladores maliciosos ya pueden analizar el parche público para crear exploits funcionales. El proceso para que los fabricantes (proveedores de BIOS y servidores) integren este código en sus propias actualizaciones de firmware, y para que los clientes las apliquen, suele ser lento y complejo.
Mientras los parches no estén implementados, los expertos recomiendan aislar el tráfico de arranque PXE en redes de aprovisionamiento desconectadas del exterior, bloquear mensajes de error ICMP dirigidos a máquinas en fase de inicio y desactivar PXE en aquellos servidores que no lo requieran para su funcionamiento habitual.
Finalmente, si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.
