Intel NUC SMM callout (CVE-2016-8103)¶
Tüm Intel-branded NUC kit'lerinin BIOS'undaki bir SMM call-out, local privileged (ring-0) bir kullanıcının System Management Mode'a ulaşıp platformun tam kontrolünü ele geçirmesine imkân veriyor — SMM-based SPI flash write protection'ı yenebilen bir ring 0 → ring -2 escalation'ı.
Mechanism¶
Note
SMM, x86'nın "ring -2" execution mode'udur: handler'ları, ring-0 OS'ten
kilitlenmiş bir bölge olan SMRAM'de yaşar ve buraya yalnızca bir System
Management Interrupt (SMI) ile girilir. Platformun security boundary'si, ancak
SMRAM içindeki code kesinlikle SMRAM içindeki target'ları çağırdığı ve SMM
entry'sini düzgün access control'lerin arkasına aldığı sürece tutar. Bir
call-out bunu kırar: tam SMM privilege'indeki bir SMI handler'ı, normal
DRAM'de SMRAM dışında yaşayan ve ring-0'daki bir attacker'ın kontrol
ettiği bir pointer/structure üzerinden kontrolü aktarır. Etkilenen NUC
BIOS'unda bu, local privileged bir kullanıcının SMM'e ulaşmak için kaldıraç
olarak kullandığı bir permissions/access-control kusuru (CWE-264) olarak ortaya
çıkar. Bir kez ring -2'de çalışınca, attacker SMM-based SPI flash write
protection'ı da (BIOS_CNTL / BIOSWE/BLE smi-on-write logic'i) baltalayıp
OS reinstall'dan sağ çıkan kalıcı BIOS implant'larına imkân verebilir.
Walkthrough¶
NVD entry'sine göre (ki Intel advisory INTEL-SA-00057'ye atıfta bulunur), NVD şunu belirtir: "SMM call out in all Intel Branded NUC Kits allows a local privileged user to access the System Management Mode and take full control of the platform."
- NUC BIOS'u, entry'de DRAM'den SMRAM dışından structure'lar okuyan ya da kontrolü aktaran (call-out), yetersiz access control'lerle (CWE-264) korunan bir SMI handler'ı register eder.
- Zaten ring 0 / administrative privilege'de olan local bir attacker, dışa çağrı target'ını etkiler ya da path'i hazırlanmış bir state ile invoke eder.
- SMI'yı tetiklemek, güvenilen handler'ı SMRAM içinde attacker'ın etkilediği bir execution'a sürükler ve ring 0 → ring -2 yükselmesi olur.
- SMM kontrolüyle attacker, SMM-enforced SPI flash write protection'ı disable edip BIOS region'ına write yapabilir ve kalıcı firmware code'u yerleştirebilir.
Kavramsal escalation yolu (örnekleme amaçlı, silahlandırılmamış)
# representative class behaviour from the public advisory -- NOT a working chain
# 1. local ring-0 actor influences the call-out target / SMI input state
# 2. trigger the SMI -> handler calls out into attacker-controlled memory
# 3. ring -2 reached -> clear BIOSWE/BLE protection, write SPI flash region
Warning
NVD, CVE-2016-8103'ü CVSS 3.0 6.7 (MEDIUM,
AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H) olarak puanlıyor; Intel bunu "Important"
olarak derecelendirdi. Exploitation, mevcut local privilege gerektirir. İlgili
NUC modeli için INTEL-SA-00057'de adı geçen BIOS sürümüne güncelle.
Detection¶
- CHIPSEC:
chipsec_main -m common.smmvetools.smm.smm_ptrile güvensiz pointer'lara call out yapan SMI handler'larını ortaya çıkar;chipsec_main -m common.bios_wpile SPI flash write protection'ın (BIOSWE/BLE/SMM_BWP/PRx) doğru yapılandırılıp locked olduğunu doğrula. - SMRAM'in locked olduğunu (
common.smm/ SMRR) ve generation'ın desteklediği yerlerdeSMM_Code_Chk_En'i teyit et. - Kurulu BIOS sürümünü INTEL-SA-00057'deki düzeltilmiş sürümle karşılaştır.
Mitigation¶
- Etkilenen Intel NUC kit'lerini INTEL-SA-00057'de adı geçen düzeltilmiş BIOS'a güncelle (5./6. nesil Core NUC modellerini ve NUC6i7KYB, NUC5i5RYB, STK2M3W64CC, DN2820FYB gibi Compute Stick varyantlarını kapsar).
- Call-out'u ortadan kaldır: tüm SMI-handler call target'larını SMRAM içinde tut ve SMM entry'sini doğru access control'lerle gate'le.
- Hardware backstop'lar: persistence'ı önlemek için locked SMRAM (SMRR / D_LCK),
SMM_Code_Chk_Enve SMM-set SPI flash write protection (SMM_BWP/ protected range'ler).
References¶
- NVD: CVE-2016-8103 (references Intel advisory INTEL-SA-00057)