EDK II — Falla Crítica de 16 Años en Firmware UEFI Permite Ejecución de Código Antes de Secure Boot en Servidores con Network-Boot (CVE-2026-97631)
Fecha de publicación: 28 de octubre de 2026
Categoría: Vulnerability / Network Security
Introducción
Una falla crítica de diseño y programación con 16 años de antigüedad en EDK II, el código de referencia de código abierto utilizado por la gran mayoría de fabricantes de hardware para construir firmware UEFI, expone a servidores y equipos de centros de datos a un vector de ataque altamente peligroso. Identificada como CVE-2026-97631 y con una puntuación CVSS v4.0 de 9.5 (CRITICAL), la vulnerabilidad permite a un atacante en la red adyacente ejecutar código arbitrario en la máquina antes de que carguen el sistema operativo y las defensas de inicio como Secure Boot. El hallazgo fue realizado por Alex Matrosov (Anthropic) y Dan Holmes-Mitra (Google), coordinado inicialmente para una divulgación pública posterior pero precipitado por un pull request prematuro en el repositorio oficial.
¿Qué es EDK II y la Vulnerabilidad CVE-2026-97631? (Análisis General)
El firmware UEFI es el software de bajo nivel que se ejecuta inmediatamente al encender un ordenador, inicializando los componentes de hardware antes de transferir el control al sistema operativo. EDK II (EFI Development Kit II) constituye la base de código sobre la cual operan los principales fabricantes independientes de BIOS (AMI, Insyde y Phoenix), además de bifurcaciones endurecidas como Project Mu de Microsoft.
La vulnerabilidad radica en el subsistema de arranque por red PXE (Preboot Execution Environment) de EDK II. Específicamente, el componente encargado de procesar mensajes de error ICMP y de estado enviados a la interfaz de red durante un inicio PXE carece de validaciones de tamaño adecuadas al copiar estos paquetes en un búfer estático de memoria.
Datos Oficiales NVD (Hechos Confirmados)
- Identificador CVE: CVE-2026-97631
- Puntuación y Vector CVSS oficial (v4.0):
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X— 9.5 (CRITICAL) - Clasificación CWE oficial:
CWE-120: Classic Buffer OverflowCWE-131: Incorrect Calculation of Buffer SizeCWE-787: Out-of-bounds Write
- Catálogo CISA KEV: No reportado (al 27 de octubre de 2026).
¿Cómo funciona? (Análisis Técnico)
El mecanismo de explotación se aprovecha de la forma en que el controlador PXE de EDK II maneja el tráfico de red durante la fase previa al arranque del sistema operativo.
- Flujo inicial de entrada y desbordamiento: Durante un inicio PXE, la máquina cliente carga su imagen de arranque desde la red. En este proceso, el controlador escucha mensajes de error ICMP y paquetes de estado pequeños, copiando cada uno en un área fija de memoria de 504 bytes. Debido a fallos de cálculo de tamaño en las versiones IPv4 e IPv6 del código, un mensaje manipulado superior a 504 bytes desborda el búfer (Out-of-bounds Write) y sobrescribe memoria adyacente con datos controlados por el atacante.
- Persistencia y ejecución de código: Un atacante que logre enviar un paquete malicioso estructurado con precisión durante la ventana de arranque en red puede forzar un bloqueo (crash) que cuelgue el inicio. Con un esfuerzo dirigido a una compilación específica del firmware, el atacante puede sembrar un evento falso (counterfeit event) para desviar el flujo de ejecución. Este código opera dentro del firmware antes de que Secure Boot verifique la integridad del sistema. No obstante, la ejecución es volátil y no sobrevive a un reinicio por sí misma, aunque un único ciclo de ejecución basta para comprometer componentes críticos como el TPM o instalar cargas persistentes.
- Posicionamiento de red: Aunque el vector se cataloga técnicamente como accesible por red, los distribuidores (como Red Hat y SUSE) señalan que se explota de manera más realista desde una posición de red adyacente (movimiento lateral tras comprometer un segmento local) y requiere sincronización exacta con la ventana temporal del arranque por red.
Sistemas / Entornos Afectados
La vulnerabilidad afecta a una vasta infraestructura global de servidores y centros de datos que utilizan pilas de firmware basadas en EDK II con PXE habilitado por defecto.
- Versiones de EDK II: Afecta a todas las versiones de EDK II hasta e incluyendo
edk2-stable202608(versión del 21 de agosto de 2026). El error de código defectuoso se introdujo originalmente en un commit de noviembre de 2010. - Distribuciones Linux: Paquetes
edk2en Red Hat Enterprise Linux (RHEL 8, 9 y 10), SUSE y Debian. - Proveedores de Firmware/OEMs: Fabricantes que construyen sobre EDK II (AMI, Insyde, Phoenix, Microsoft Project Mu). Nota: Intel y Arm indicaron que sus carteras de productos comerciales o arquitecturas bajo soporte directo no implementan directamente la funcionalidad afectada en sus referencias base, aunque fabricantes OEM de placas o sistemas terceros pudieron incorporarla.
| CVE | Categoría (CWE) | Impacto | CVSS | Vector (resumido) |
|---|---|---|---|---|
| CVE-2026-97631 | CWE-120, CWE-131, CWE-787 | Confidencialidad, Integridad y Disponibilidad Totales (Crítico) | 9.5 (Critical) | AV:N/AC:L/AT:P/PR:N/UI:N (CVSS v4.0) |
Mitigación y Detección
Remediación
- Actualizaciones de Firmware: TianoCore ha fusionado un parche en el repositorio de desarrollo principal (EDK II) que reescribe la rutina de copia para truncar mensajes superiores a 504 bytes. Sin embargo, dado que no existe una versión estable oficial liberada que contenga el parche, los administradores de sistemas deben esperar a que los fabricantes de placas base y servidores publiquen actualizaciones de BIOS/UEFI basadas en el código corregido.
- Deshabilitar PXE: Como medida temporal de mitigación, las organizaciones que no utilicen el arranque por red deben desactivar la funcionalidad PXE en la configuración UEFI/BIOS de sus servidores para eliminar la superficie de exposición.
- Acciones en distribuciones y bifurcaciones: Microsoft Project Mu ya incorporó la corrección en sus ramas de lanzamiento. Las distribuciones Linux continúan evaluando y preparando parches para sus paquetes de firmware.
Detección
- Monitoreo de Red: Supervisar el tráfico de red durante las fases de inicio de los servidores en busca de anomalías en paquetes ICMP o mensajes de estado PXE inusualmente grandes.
- Análisis de Logs de Arranque: Auditar registros de infraestructura y sistemas de gestión de servidores en busca de fallos intermitentes de arranque o comportamientos anómalos en el búfer del controlador de red UEFI.
“Un atacante con acceso temporal a la red local puede explotar este fallo en el proceso de arranque para secuestrar el flujo del programa cuando el sistema aún mantiene acceso a componentes sensibles, como el TPM del equipo, comprometiendo los esquemas de cifrado de disco.”
Recapitulando
La identificación del CVE-2026-97631 subraya los riesgos latentes en bases de código heredadas de bajo nivel que sustentan la infraestructura moderna de servidores. Al permitir la ejecución de código antes de las capas de defensa como Secure Boot, este desbordamiento de búfer en el subsistema PXE de EDK II representa un desafío crítico para la seguridad de centros de datos. La mitigación efectiva requiere tanto la desactivación preventivas de servicios de red innecesarios como la futura aplicación de actualizaciones de firmware proporcionadas por los fabricantes.
Referencias
- TianoCore EDK2 Security Advisory (GHSA-99cj-7hg9-mp4m). https://github.com/tianocore/edk2/security/advisories/GHSA-99cj-7hg9-mp4m
- National Vulnerability Database (NVD). CVE-2026-97631 Detail. https://www.cve.org/CVERecord?id=CVE-2026-97631
- Oss-Security Mailing List. (2026). Aviso de seguridad EDK2. http://www.openwall.com/lists/oss-security/2026/10/28/4
- Ars Technica. (2026). Code execution flaw in UEFI firmware threatens most servers on planet earth. https://arstechnica.com/security/2026/10/code-execution-flaw-in-uefi-firmware-threatens-most-servers-on-planet-earth/
- Microsoft Mu Basecore Pull Requests (PR #1989, PR #1990). https://github.com/microsoft/mu_basecore/pull/1989
- Red Hat Security Advisory / Tracker para CVE-2026-97631. https://access.redhat.com/security/cve/CVE-2026-97631
- SUSE Security Tracker. https://www.suse.com/security/cve/CVE-2026-97631/
- Debian Security Tracker. https://security-tracker.debian.org/tracker/CVE-2026-97631
- TianoCore EDK2 Source Code Pull Requests (PR #13200, PR #13302). https://github.com/tianocore/edk2/pull/13302