Skip to content

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."

  1. 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.
  2. 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.
  3. 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.
  4. 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.smm ve tools.smm.smm_ptr ile güvensiz pointer'lara call out yapan SMI handler'larını ortaya çıkar; chipsec_main -m common.bios_wp ile 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 yerlerde SMM_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_En ve SMM-set SPI flash write protection (SMM_BWP / protected range'ler).

References