Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
GIGABYTE-H510M-K-V2-BIOS-SMM-Reverse-Engineering-CVE-2025-7026-7027-7028-7029-Research — GIGABYTE H510M K V2(`H510MKV2.F3`) BIOS 이미지의 정적 리버스 엔지니어링: PI-spec SMM Core 메모리 할당자의 전체 UEFI 펌웨어 볼륨 추출 분석과 GIGABYTE/Binarly가 2025년에 공개한 4가지 SMM 메모리 손상 취약점(CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029)을 겨냥한 표적 탐색. | Kitploit
도구/GitHubGitHub/tobss8/gigabyte-h510m-k-v2-bios-smm-reverse-engineering-cve-2025-7026-7027-7028-7029-research
Static AnalysisVulnerability AnalysisReverse EngineeringHardware SecurityBinary AnalysisFirmware Analysis
GitHubtobss8/gigabyte-h510m-k-v2-bios-smm-reverse-engineering-cve-2025-7026-7027-7028-7029-research

GIGABYTE-H510M-K-V2-BIOS-SMM-Reverse-Engineering-CVE-2025-7026-7027-7028-7029-Research

GIGABYTE H510M K V2(`H510MKV2.F3`) BIOS 이미지의 정적 리버스 엔지니어링: PI-spec SMM Core 메모리 할당자의 전체 UEFI 펌웨어 볼륨 추출 분석과 GIGABYTE/Binarly가 2025년에 공개한 4가지 SMM 메모리 손상 취약점(CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029)을 겨냥한 표적 탐색.

저장소 보기
1482개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GIGABYTE H510M K V2 BIOS — SMM 리버스 엔지니어링 및 CVE-2025-7026/7027/7028/7029 연구

GIGABYTE H510M K V2(H510MKV2.F3) BIOS 이미지의 정적 리버스 엔지니어링: PI-spec SMM Core 메모리 할당자에 대한 전체 UEFI 펌웨어 볼륨 추출 분석과 GIGABYTE/Binarly가 2025년에 공개한 4가지 SMM 메모리 손상 취약점(CVE-2025-7026 CVE-2025-7027 CVE-2025-7028 CVE-2025-7029)에 대한 표적 탐색.

상태: 4개 CVE 중 1개(CVE-2025-7027)의 존재가 확인됨. 나머지 3개는 접근 가능한 전체 펌웨어를 적극적으로 검색했지만 발견되지 않았음 — 그 의미와 한계에 대한 정확한 설명은 미확인 CVE를 참조하세요.


연구의 모든 파일: 구글 드라이브 다운로드: SMM_ALL

목차

  • 면책 조항 / 범위
  • 대상
  • TL;DR
  • 방법론 및 도구
  • 펌웨어 구조
  • 저장소 구조
  • 배경: 공개 CVE
  • 추가 발견: SMM 메모리 할당자(PiSmmCore)
  • 확인됨: CVE-2025-7027
  • 미확인 CVE — CVE-2025-7026 / 7028 / 7029
  • 수정 조치
  • 한계
  • 참고 자료

면책 조항 / 범위

이 문서는 n-day 연구이지 0-day 공개가 아닙니다. 여기서 언급된 4개 CVE는 모두 이 연구가 시작되기 이전에 이미 GIGABYTE에 의해 공개적으로 공개·패치되었고(패치 펌웨어는 2025-06-12부터 배포 시작), Binarly와 CERT/CC가 CVE를 지정하고 문서화한 것들입니다. 이 저장소의 어떤 내용도 새로운 취약점 발견이 아닙니다 — 이는 이전에 공개되고 이전에 패치된 버그 클래스가 특정 공개 다운로드 가능 BIOS 빌드에 존재하는지 여부를 확인하는 독립적인 정적 분석 검증입니다.

  • 작동하는 익스플로잇이나 PoC는 포함되지 않았으며 제작되지도 않았습니다. 이는 정적 분석 전용입니다(추출된 펌웨어 모듈의 디스어셈블리/디컴파일). 실행된 것은 없었고, SMRAM을 읽거나 쓴 적도, 하드웨어를 건드린 적도 없습니다.
  • 새로운 취약점을 주장하지 않습니다. CVE-2025-7027의 존재는 Binarly가 이미 공개적으로 설명한 취약한 코드 패턴을 대조하여 확인된 것이지, 독립적으로 발견한 것이 아닙니다.
  • 교육 / 방어적 보안 목적으로 게시되었습니다: n-day 펌웨어 버그가 실제로 어떤 모습인지 이해하고, 이 특정 보드/BIOS 개정판에 대한 구체적인 증거로 GIGABYTE 자체 업데이트 권장 사항을 뒷받침하기 위함입니다.
  • 이 보드를 사용 중이라면: BIOS를 업데이트하세요. 수정 조치를 참조하세요.

대상

보드GIGABYTE H510M K V2 (H510MKV2)
BIOS 파일H510MKV2.F3
파일 크기16777216바이트(16MB)
파일 날짜2023-12-20
MD5a9bca8aeb55061824af1c3eedfb5c846
SHA-256934a935e5faba8d2cea4e1d51e9edb6aed86b32f412d0da5bae602bd9fd8f9f3
칩셋Intel H510
벤더 패치 사용 가능 시점2025-06-12(이 빌드는 그보다 약 18개월 앞선 것입니다)

TL;DR

  • BIOS 이미지에서 전체 UEFI 펌웨어 볼륨 트리를 추출했습니다(uefi_firmware / uefi-firmware-parser) — SMM/DXE 볼륨에서 356개의 FFS 파일을 열거했으며, 그중 302개는 추출 가능한 PE32/TE 이미지를 갖고 있었습니다.
  • PiSmmCore(PI-spec SMM Core)를 분리하여 완전히 리버스 엔지니어링했으며, 하드코딩된 "sphd"/"tail" 가드 시그니처를 통해 실제 SMM 풀/페이지 할당자(SmmAllocatePool/SmmFreePool/SmmAllocatePages/SmmFreePages 내부)를 확인하고 이름을 명명했습니다 — EDK2 오픈소스 MdeModulePkg/Core/PiSmmCore/Pool.c와 정확히 일치합니다.
  • ROM에서 발견된 모든 펌웨어 볼륨의 모든 추출 가능한 모듈(총 325개 이상)을 Binarly의 공개 CVE-2025-7026/7027/7028/7029 분석 보고서의 식별 마커를 대상으로 검색했습니다.
  • CVE-2025-7027 — 확인됨. GenericComponentSmmEntry에서 정확히 일치하는 취약한 코드 경로를 발견하고 추적했습니다: NVRAM 변수(SetupXtuBufferAddress)가 검증 없이 GetVariable()로 읽혀 SW SMI 0xB2를 통해 도달 가능한 쓰기 포인터로 직접 사용됩니다 — 이는 Binarly의 공개 근본 원인 설명과 하나하나 일치합니다.
  • CVE-2025-7026 / -7028 / -7029 — 발견되지 않음 접근 가능한 전체 펌웨어를 철저히 문자열/바이트 수준으로 훑었음에도 불구하고 발견되지 않았습니다. 이는 '이상 없음' 판정이 아닌 미결정 결과로 보고됩니다 — 그 이유와 실제 답을 얻기 위해 필요한 것은 전용 섹션을 참조하세요.

방법론 및 도구

  1. 추출 — uefi_firmware(uefi-firmware-parser -e)가 BIOS 이미지를 재귀적으로 풀었습니다: Intel Flash Descriptor 영역 → 펌웨어 볼륨 → FFS 파일 → 섹션 순서로, 발견된 모든 LZMA/Tiano 압축 펌웨어 볼륨을 해제했습니다.
  2. 모듈 분리 — .ui(드라이버 표시 이름) 섹션과 .pe/.te 이미지 섹션을 가진 모든 FFS 파일을 <DriverName>__<GUID8>.<pe32|te> 이름의 독립형 PE32+/TE 바이너리로 복사했습니다.
  3. 정적 분석 — Hex-Rays 디컴파일러와 함께 IDA Pro를 사용했습니다(ida-pro-mcp / idalib 헤드리스 워커 인터페이스 경유). 모듈당 데이터베이스 하나씩. 자동 분석 + Hex-Rays만 사용했으며, 이 환경에서는 FLIRT 시그니처나 EDK2 타입 라이브러리를 사용할 수 없었습니다(아래 한계로 기록됨).
  4. 마커 검색 — Binarly의 공개 권고문에 언급된 식별자(변수 이름, 매직 상수, 함수 레이블)를 찾기 위해 추출된 모든 모듈(및 원시 16MB 이미지)에서 Python 바이트/문자열 스캔을 수행했습니다.
  5. 수동 추적 — 마커가 발견된 모든 지점에서 참조 함수를 디컴파일하고 호출 그래프(호출자/피호출자)를 수동으로 따라가 실제 코드 경로를 재구성했으며, 공개된 근본 원인 설명과 교차 검증했습니다.
  6. 이름 변경 — 확인된 함수는 분석 가능한 산출물에 직접 문서화하기 위해 IDA 데이터베이스에서 이름을 변경했습니다(단순한 글로만 남기지 않도록).

펌웨어 구조

BIOS 이미지에는 4개의 Intel Flash Descriptor 영역이 포함되어 있으며, region-bios만 GIGABYTE/OEM 코드를 담고 있습니다(region-me.fd, region-gbe.fd, region-pdr.fd는 Intel Management Engine / GbE / 디스크립터 펌웨어로, 별도 구성 요소이며 범위 밖이라 탐색하지 않았습니다).

region-bios 내에서 4개의 펌웨어 볼륨이 발견되어 추출되었습니다:

볼륨(컨테이너 FFS GUID)내용추출된 파일 수
file-9e21fd93-... → volume-ee4e5898-...메인 DXE/SMM 드라이버 볼륨 — 모든 Smm* 드라이버, 플랫폼 DXE 드라이버302
file-f641ac56-... → volume-ee4e5898-...위 볼륨의 중복/PEI 단계 복사본(더 작은 하위 집합: PiSmmCommunicationPei, IT8728FSmmFeaturesPei 등)22
file-3417f275-... → volume-3417f275-...초기 PEI/DXE 부팅 초기화 볼륨(DxeIpl, FspS3Notify ...)21(이미지 포함 2개)
file-05ca020b-... → volume-05ca020b-...작은 보조 볼륨, 실행 가능한 이미지 없음2

4개 모두 추출하여 마커 검색을 수행했습니다(미확인 CVE 참조).

저장소 구조

SMM/
├── README.md                    this file
├── CVE_ANALYSIS.md              full technical deep-dive (code-level detail confidence notes)
├── flash.fd                     copy of the extracted 16MB BIOS image
├── regions/                     raw recursive extraction (every FV/FFS/section as produced by uefi_firmware)
├── smm_modules/                 PiSmmCore isolated + fully analyzed (.pe32 + Hex-Rays .i64 renames applied)
├── smm_modules_all/             all 51 `Smm*`-named drivers as standalone PE32/TE + manifest.txt
│                                 (4 extra ones  PiSmmCpuDxeSmm SmmAccess SmmControl SmmLockBox
│                                  FlashSmiSmm FlashDriverSmm  have auto-analyzed .i64 databases)
├── all_modules/                 every extractable module from the main DXE/SMM volume (302 not just Smm*-named)
├── extra_volumes_modules/       modules from the two smaller auxiliary firmware volumes
└── f641_pei_modules/            modules from the duplicate PEI-phase volume copy

배경: 공개 CVE

CVEBinarly IDCVSS공개 근본 원인 요약
CVE-2025-7026BRLY-2025-0088.2Binarly가 CommandRcx0라고 부르는 함수 내부에서 SW SMI 핸들러(SwSmiInputValue 0xB2)가 RBX 레지스터를 검증되지 않은 포인터로 신뢰합니다. *RBX가 '$DB$'/'2DB$'와 일치하면 핸들러는 임의 SMRAM 쓰기를 수행합니다.
CVE-2025-7027BRLY-2025-0098.2이중 포인터 역참조: 검증되지 않은 NVRAM 변수(SetupXtuBufferAddress)와 공격자가 제어하는 RBX 파생 포인터가 결합되어 → 임의 SMRAM 쓰기가 발생합니다.
CVE-2025-7028BRLY-2025-0108.2RBX/RCX에서 파생된 함수 포인터 구조체(FuncBlock)에 대한 검증 부재로, ReadFlash/WriteFlash/EraseFlash/GetFlashInfo를 통해 도달 가능합니다.
CVE-2025-7029BRLY-2025-0118.2전원/열(오버클럭) 구성 로직에서 검증되지 않은 RBX 사용이 공격자 영향 하의 OcHeader 포인터를 제어하여 → 임의 SMRAM 쓰기가 발생합니다.

4개 모두의 공통점: 소프트웨어 SMI 핸들러가 레지스터 또는 NVRAM에서 비롯된 값을 메모리 포인터로 신뢰하되, 그 값이 실제로 SMRAM 외부에 있는지 검증하지 않아서 링-0(관리자/루트) 공격자가 일반적인 SW SMI 트리거를 SMM 권한(링 -2)의 임의 읽기/쓰기로 바꿀 수 있습니다 — 완전한 펌웨어 손상, Secure Boot 우회, OS 아래에서의 지속성 확보로 이어집니다.

추가 발견: SMM 메모리 할당자(PiSmmCore)

취약점이 아니라 배경 조사입니다 — 보안 버그를 조사하기 전에 도구 체인(추출 → PE 분리 → IDA/Hex-Rays → 수동 RE)이 실제로 소스로 검증 가능한 진짜 EDK2 내부 구조를 복구할 수 있음을 입증함으로써 나머지 작업의 기반을 마련했습니다.

PiSmmCore(GUID e94f54cd-81eb-47ed-aec3-856f5dc157a9)는 PI-spec SMM Core로, SmmAllocatePool/SmmFreePool/SmmAllocatePages/SmmFreePages와 SMI 핸들러 디스패치 테이블을 소유합니다.

호출 체인(smm_modules/PiSmmCore.pe32.i64 내부 주소):

_ModuleEntryPoint (0x1184)
  -> SmmCoreEntryPointHelper (0x14D4)        writes the "SMST" table signature
     -> SmmInternalAllocatePool_wrapper (0x95EC)
        -> InternalAllocPoolByIndex_sphd_tail (0x57A8)     <- the allocator
     -> SmmAllocateZeroedPool (0x961C)        alloc + zero wrapper

SmmFreePool_wrapper (0x9714)
  -> SmmIsBufferInsideSmram (0x95A8)          decides SMRAM-resident vs not
  -> SmmInternalFreePool_sphd_tail (0x591C)   validates sphd/tail frees
     -> InternalFreePages (0x6A2C)            page-granularity free + coalesce
InternalFindFreePages (0x6820)                page-granularity alloc (mirror of InternalFreePages)
도구 다운로드