Skip to content

VMware SVGA off-by-one heap overflow (CVE-2020-3969)

SVGA device'ındaki bir off-by-one heap overflow, 3D-enabled bir guest'in host üzerinde kod çalıştırmasına izin verebilir.

Mechanism

İhlal edilen invariant

SVGA emulation, host heap buffer'larının boyutunu guest input'undan hesaplar. Korunan sınır guest → host code execution'dır. CVE-2020-3969 bir off-by-one heap overflow'dur: bir length/loop-bound hesabı tek bir element kadar yanlıştır, dolayısıyla emulator bir host heap allocation'ının sonundan bir birim öteye yazar. O tek out-of-bounds byte/word komşu heap object'ini ya da metadata'sını bozar; dikkatli bir heap layout ile daha güçlü bir primitive'e terfi ettirilebilen bir length alanını, pointer'ı ya da chunk header'ını overwrite eder. İhlal edilen invariant spatial memory safety'dir — klasik bir boundary off-by-one.

Important olarak derecelendirildi (CVSS 8.1); "saldırganın kontrolü dışındaki ek koşullar" gereklidir. Corentin Bayet ve Bruno Pujos (Synacktiv) tarafından ZDI üzerinden raporlandı; VMSA-2020-0015'te düzeltildi.

Walkthrough

VMSA-2020-0015'ten, yüksek seviyeden:

  1. 3D graphics enabled iken, guest yanlış hesaplanan boyut yoluna isabet eden SVGA operation'ları gönderir.
  2. Emulator, host heap buffer'ının bir element ötesine yazar.
  3. Heap grooming ile tek birimlik overwrite hassas bir komşu alana iner ve host code execution'a doğru escalate edilir.

Off-by-one ayrıntıları ../primitive/off-by-one-error.md'dedir; kesin yol atlanmıştır.

Detection

  • SVGA aktivitesine bağlı vmware-vmx abort'ları için vmware.log / host crash dump'ları.
  • Tek elementlik overrun'larda tetiklenen heap-corruption detection (guard page'ler, allocator integrity check'leri).
  • Anormal VMX-process davranışını ya da grooming benzeri SVGA allocation churn'ünü işaretleyen EDR.

Mitigation

  • VMSA-2020-0015'i uygula (ESXi 6.5/6.7/7.0, Workstation 15.5.5, Fusion 11.5.5).
  • Workaround: VM için 3D acceleration'ı disable et.
  • Host allocator hardening'i ve exploit mitigation'larını enabled tut.

References