
Rétro-ingénierie statique d'une image BIOS GIGABYTE H510M K V2 (`H510MKV2.F3`) : analyse complète de l'extraction des volumes de firmware UEFI de l'allocateur mémoire SMM Core de la spécification PI et chasse ciblée des quatre vulnérabilités de corruption mémoire SMM divulguées par GIGABYTE/Binarly en 2025 (CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029).
Rétro-ingénierie statique d'une image BIOS GIGABYTE H510M K V2 (H510MKV2.F3) : extraction complète des volumes de firmware UEFI, analyse de l'allocateur mémoire du noyau SMM conforme à la spécification PI et recherche ciblée des quatre vulnérabilités de corruption mémoire SMM divulguées par GIGABYTE/Binarly en 2025 (CVE-2025-7026, CVE-2025-7027, CVE-2025-7028, CVE-2025-7029).
Statut : 1 CVE sur 4 confirmée comme présente (CVE-2025-7027). Les 3 autres ont été activement recherchées dans l'ensemble du firmware accessible et n'ont pas été trouvées — voir CVE non confirmées pour comprendre précisément ce que cela signifie et ne signifie pas.
Cette recherche est de type n-day, pas une divulgation de 0-day. Les quatre CVE référencées ici ont déjà été divulguées publiquement et corrigées par GIGABYTE (les firmwares corrigés ont commencé à être distribués le 2025-06-12), ont reçu leurs identifiants CVE et ont été documentées par Binarly et le CERT/CC avant le début de cette recherche. Rien dans ce dépôt ne constitue une découverte de vulnérabilité — il s'agit d'une vérification indépendante par analyse statique de la présence ou non des classes de bugs précédemment divulguées et corrigées dans une version spécifique du BIOS téléchargeable publiquement.
| Carte | GIGABYTE H510M K V2 (H510MKV2) |
| Fichier BIOS | H510MKV2.F3 |
| Taille du fichier | 16777216 octets (16 Mo) |
| Date du fichier | 2023-12-20 |
| MD5 | a9bca8aeb55061824af1c3eedfb5c846 |
| SHA-256 | 934a935e5faba8d2cea4e1d51e9edb6aed86b32f412d0da5bae602bd9fd8f9f3 |
| Chipset | Intel H510 |
| Correctif constructeur disponible depuis | 2025-06-12 (cette version le précède d'environ 18 mois) |
uefi-firmware-parser) — 356 fichiers FFS énumérés dans le volume SMM/DXE, dont 302 avec une image PE32/TE extractible.PiSmmCore (le noyau SMM conforme à la spécification PI), confirmant et nommant le véritable allocateur de pools/pages SMM (internes de SmmAllocatePool/SmmFreePool/SmmAllocatePages/SmmFreePages) via ses signatures de garde codées en dur "sphd"/"tail" — une correspondance exacte avec le code open-source EDK2 MdeModulePkg/Core/PiSmmCore/Pool.c.GenericComponentSmmEntry : une variable NVRAM (SetupXtuBufferAddress) est récupérée via GetVariable() sans aucune validation et utilisée directement comme pointeur d'écriture accessible via le SMI logiciel 0xB2 — cela correspond point par point à la description publique de la cause racine de Binarly.uefi_firmware (uefi-firmware-parser -e) a dépaqueté récursivement l'image BIOS : régions du descripteur de flash Intel → volumes de firmware → fichiers FFS → sections, en décompressant chaque volume de firmware compressé LZMA/Tiano trouvé..ui (nom d'affichage du driver) et une section d'image .pe/.te a été copié sous forme de binaire PE32+/TE autonome nommé <DriverName>__<GUID8>.<pe32|te>.ida-pro-mcp / idalib) avec le décompilateur Hex-Rays, une base de données par module. Auto-analyse + Hex-Rays uniquement — aucune signature FLIRT ni bibliothèque de types EDK2 n'était disponible dans cet environnement (mentionné comme limite ci-dessous).L'image BIOS contient quatre régions du descripteur de flash Intel ; seule region-bios contient du code GIGABYTE/OEM (region-me.fd, region-gbe.fd, region-pdr.fd sont des firmwares du moteur de gestion Intel / GbE / descripteur — des composants séparés hors périmètre, non explorés).
Quatre volumes de firmware ont été trouvés et extraits dans region-bios :
| Volume (GUID du conteneur FFS) | Contenu | Fichiers extraits |
|---|---|---|
file-9e21fd93-... → volume-ee4e5898-... | Volume principal des drivers DXE/SMM — tous les drivers Smm*, drivers DXE de la plateforme | 302 |
file-f641ac56-... → volume-ee4e5898-... | Copie en double/phase PEI du volume ci-dessus (sous-ensemble plus petit : PiSmmCommunicationPei, IT8728FSmmFeaturesPei, etc.) | 22 |
file-3417f275-... → volume-3417f275-... | Volume d'amorçage PEI/DXE précoce (DxeIpl, FspS3Notify, ...) | 21 (2 avec images) |
file-05ca020b-... → volume-05ca020b-... | Petit volume auxiliaire, aucune image exécutable | 2 |