
Ingeniería inversa estática de una imagen BIOS de GIGABYTE H510M K V2 (`H510MKV2.F3`): análisis completo de extracción de volumen de firmware UEFI del asignador de memoria SMM Core de la especificación PI y una búsqueda dirigida de las cuatro vulnerabilidades de corrupción de memoria SMM que GIGABYTE/Binarly reveló en 2025 (CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029).
Ingeniería inversa estática de una imagen de BIOS GIGABYTE H510M K V2 (H510MKV2.F3): extracción completa de volúmenes de firmware UEFI, análisis del asignador de memoria del núcleo SMM de la especificación PI y una búsqueda dirigida de las cuatro vulnerabilidades de corrupción de memoria SMM que GIGABYTE/Binarly divulgaron en 2025 (CVE-2025-7026, CVE-2025-7027, CVE-2025-7028, CVE-2025-7029).
Estado: 1 de 4 CVE confirmados como presentes (CVE-2025-7027). Los otros 3 se buscaron activamente en todo el firmware accesible y no se encontraron; consulte CVE no confirmados para saber exactamente qué significa y qué no significa esto.
Esta es una investigación de n-day, no una divulgación de 0-day. Los cuatro CVE referenciados aquí ya habían sido divulgados públicamente y parcheados por GIGABYTE (el firmware parcheado comenzó a distribuirse el 2025-06-12), con CVE asignados y documentados por Binarly y CERT/CC antes de que comenzara esta investigación. Nada en este repositorio es un nuevo descubrimiento de vulnerabilidades: es una verificación independiente mediante análisis estático de si las clases de errores previamente divulgadas y previamente parcheadas están presentes en una compilación de BIOS específica y descargable públicamente.
| Placa | GIGABYTE H510M K V2 (H510MKV2) |
| Archivo de BIOS | H510MKV2.F3 |
| Tamaño del archivo | 16777216 bytes (16 MB) |
| Fecha del archivo | 2023-12-20 |
| MD5 | a9bca8aeb55061824af1c3eedfb5c846 |
| SHA-256 | 934a935e5faba8d2cea4e1d51e9edb6aed86b32f412d0da5bae602bd9fd8f9f3 |
| Chipset | Intel H510 |
| Parche del proveedor disponible desde | 2025-06-12 (esta compilación es anterior por ~18 meses) |
uefi-firmware-parser): 356 archivos FFS enumerados en el volumen SMM/DXE,
302 con una imagen PE32/TE extraíble.PiSmmCore (el núcleo SMM de la especificación PI),
confirmando y nombrando el verdadero asignador de pool/páginas SMM
(la implementación interna de SmmAllocatePool/SmmFreePool/SmmAllocatePages/SmmFreePages)
mediante sus firmas de guarda "sphd"/"tail" codificadas de forma fija: una
coincidencia exacta con el código abierto MdeModulePkg/Core/PiSmmCore/Pool.c de EDK2.GenericComponentSmmEntry: una variable NVRAM
(SetupXtuBufferAddress) se obtiene mediante GetVariable() sin validación
y se usa directamente como puntero de escritura alcanzable a través de SW SMI 0xB2; esto
coincide punto por punto con la descripción pública de la causa raíz de Binarly.uefi_firmware
(uefi-firmware-parser -e) desempaquetó recursivamente la imagen de BIOS:
regiones del Intel Flash Descriptor → volúmenes de firmware → archivos FFS → secciones,
descomprimiendo todos los volúmenes de firmware comprimidos con LZMA/Tiano que encontró..ui (nombre de visualización
del driver) y una sección de imagen .pe/.te se copió como un binario
PE32+/TE independiente llamado <DriverName>__<GUID8>.<pe32|te>.ida-pro-mcp / idalib) con el descompilador
Hex-Rays, una base de datos por módulo. Solo autoanálisis + Hex-Rays; no
había firmas FLIRT ni bibliotecas de tipos EDK2 disponibles en este
entorno (se indica como limitación más abajo).La imagen de BIOS contiene cuatro regiones del Intel Flash Descriptor; solo
region-bios contiene código de GIGABYTE/OEM (region-me.fd, region-gbe.fd
y region-pdr.fd son firmware del Intel Management Engine / GbE / descriptor:
componentes separados, fuera de alcance y no explorados).
Dentro de region-bios se encontraron y extrajeron cuatro volúmenes de firmware:
| Volumen (GUID de contenedor FFS) | Contenido | Archivos extraídos |
|---|---|---|
file-9e21fd93-... → volume-ee4e5898-... | Volumen principal de drivers DXE/SMM: todos los drivers Smm*, drivers DXE de plataforma | 302 |
file-f641ac56-... → volume-ee4e5898-... | Copia duplicada/de fase PEI de lo anterior (subconjunto más pequeño: PiSmmCommunicationPei, IT8728FSmmFeaturesPei, etc.) | 22 |
file-3417f275-... → volume-3417f275-... | Volumen de puesta en marcha temprana PEI/DXE (DxeIpl, FspS3Notify, ...) | 21 (2 con imágenes) |
file-05ca020b-... → volume-05ca020b-... | Volumen auxiliar pequeño, sin imágenes ejecutables | 2 |