
Statisches Reverse-Engineering eines GIGABYTE H510M K V2 (`H510MKV2.F3`) BIOS-Images: vollständige Extraktionsanalyse der UEFI-Firmware-Volumes des PI-spec SMM Core-Speicherzuweisers sowie eine gezielte Suche nach den vier SMM-Speicherkorruptions-Schwachstellen, die GIGABYTE/Binarly 2025 offengelegt haben (CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029).
Statisches Reverse-Engineering eines GIGABYTE H510M K V2 (H510MKV2.F3) BIOS-Images: vollständige
UEFI-Firmware-Volume-Extraktionsanalyse des PI-Spezifikations-SMM-Core-Speicher-
Allokators und eine gezielte Suche nach den vier SMM-Speicherkorruptions-
Schwachstellen, die GIGABYTE/Binarly im Jahr 2025 offengelegt haben
(CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029).
Status: 1 von 4 CVEs als vorhanden bestätigt (CVE-2025-7027). Die anderen 3 wurden aktiv im gesamten zugänglichen Firmware-Image gesucht und nicht gefunden – siehe Unconfirmed CVEs für genau was das bedeutet und was nicht.
Dies ist N-Day-Forschung, keine 0-Day-Offenlegung. Alle vier hier referenzierten CVEs wurden bereits öffentlich offengelegt und von GIGABYTE gepatcht (gepatchte Firmware wurde ab 2025-06-12 ausgeliefert), die CVEs wurden von Binarly und CERT/CC vergeben und vor Beginn dieser Forschung beschrieben. Nichts in diesem Repository ist eine neue Schwachstellenentdeckung – es ist eine unabhängige statische Analyse zur Verifizierung, ob die zuvor offengelegten, zuvor gepatchten Bug-Klassen in einem bestimmten öffentlich herunterladbaren BIOS-Build vorhanden sind.
| Mainboard | GIGABYTE H510M K V2 (H510MKV2) |
| BIOS-Datei | H510MKV2.F3 |
| Dateigröße | 16777216 Bytes (16 MB) |
| Dateidatum | 2023-12-20 |
| MD5 | a9bca8aeb55061824af1c3eedfb5c846 |
| SHA-256 | 934a935e5faba8d2cea4e1d51e9edb6aed86b32f412d0da5bae602bd9fd8f9f3 |
| Chipsatz | Intel H510 |
| Vendor-Patch verfügbar seit | 2025-06-12 (dieser Build ist ~18 Monate älter) |
uefi-firmware-parser) – 356 FFS-Dateien im SMM/DXE-Volume aufgelistet,
302 mit extrahierbarem PE32/TE-Image.PiSmmCore (den PI-Spezifikations-SMM-Core) isoliert und vollständig reverse-engineered,
wodurch der echte SMM-Pool/Seiten-Allokator bestätigt und benannt wurde
(SmmAllocatePool/SmmFreePool/SmmAllocatePages/SmmFreePages-
Interna) über seine hartkodierten "sphd"/"tail"-Guard-Signaturen – eine
exakte Übereinstimmung mit der Open-Source-Datei MdeModulePkg/Core/PiSmmCore/Pool.c von EDK2.GenericComponentSmmEntry wurde gefunden und nachverfolgt: Eine NVRAM-Variable
(SetupXtuBufferAddress) wird über GetVariable() ohne Validierung abgerufen
und direkt als Schreibzeiger verwendet, der über SW SMI 0xB2 erreichbar ist – dies
stimmt Punkt für Punkt mit Binarlys öffentlicher Root-Cause-Beschreibung überein.uefi_firmware
(uefi-firmware-parser -e) hat das BIOS-Image rekursiv entpackt: Intel
Flash-Descriptor-Regionen → Firmware-Volumes → FFS-Dateien → Sektionen,
wobei jedes LZMA/Tiano-komprimierte Firmware-Volume dekomprimiert wurde..ui-Sektion (Anzeigename des Treibers)
und einer .pe/.te-Bildsektion wurde als eigenständiges
PE32+/TE-Binary mit dem Namen <DriverName>__<GUID8>.<pe32|te> kopiert.ida-pro-mcp-/idalib-Headless-Worker-Schnittstelle) mit dem Hex-Rays-
Dekompilierer, eine Datenbank pro Modul. Nur Auto-Analyse + Hex-Rays – keine
FLIRT-Signaturen oder EDK2-Typbibliotheken waren in dieser
Umgebung verfügbar (unten als Einschränkung vermerkt).Das BIOS-Image enthält vier Intel-Flash-Descriptor-Regionen; nur
region-bios enthält GIGABYTE/OEM-Code (region-me.fd region-gbe.fd
region-pdr.fd sind Intel Management Engine / GbE / Descriptor-Firmware –
separate Komponenten, die außerhalb des Rahmens liegen und nicht untersucht wurden).
Innerhalb von region-bios wurden vier Firmware-Volumes gefunden und extrahiert:
| Volume (Container-FFS-GUID) | Inhalt | Extrahierte Dateien |
|---|---|---|
file-9e21fd93-... → volume-ee4e5898-... | Haupt-DXE/SMM-Treiber-Volume – alle Smm*-Treiber, Platform-DXE-Treiber | 302 |
file-f641ac56-... → volume-ee4e5898-... | Duplikat/PEI-Phasen-Kopie des Obigen (kleinere Teilmenge: PiSmmCommunicationPei IT8728FSmmFeaturesPei usw.) | 22 |
file-3417f275-... → volume-3417f275-... | Frühes PEI/DXE-Bring-up-Volume (DxeIpl FspS3Notify ...) | 21 (2 mit Images) |
file-05ca020b-... → volume-05ca020b-... | Kleines Hilfs-Volume, keine ausführbaren Images | 2 |
Alle vier wurden extrahiert und einem Marker-Scan unterzogen (siehe Unbestätigte CVEs).