Skip to content

VMware SVGA device use-after-free guest-to-host RCE (CVE-2020-3962)

SVGA virtual graphics device'ındaki bir use-after-free, 3D-enabled bir guest'in host üzerinde kod çalıştırmasına izin verir (kritik guest escape).

Mechanism

İhlal edilen invariant

SVGA device, VMware'in virtual GPU'sudur; 3D acceleration ile host VMX process'i guest'in kontrol ettiği zengin bir graphics object kümesini yönetir. Korunan sınır guest → host (VMX process) code execution'dır. CVE-2020-3962 bir use-after-free'dir: graphics ile ilgili bir object, ona bir reference hâlâ erişilebilirken free edilir ve sonraki bir SVGA operation dangling pointer'ı dereference eder. Host heap'i öyle groom ederek free edilen slot saldırganın etkilediği veriyle yeniden alınınca, stale pointer VMX process'inde kontrollü bir read/write/call primitive'ine dönüşür — yani host code execution. İhlal edilen invariant, host taraflı device object'ler üzerindeki temporal memory safety'dir.

Critical olarak derecelendirildi (CVSS 9.3). Corentin Bayet ve Bruno Pujos (Synacktiv) tarafından Pwn2Own 2020'de ZDI üzerinden raporlandı.

Walkthrough

VMSA-2020-0015 ve Pwn2Own 2020 raporlamasından, yüksek seviyeden:

  1. 3D graphics enabled iken, guest SVGA interface'ini öyle sürer ki bir device object hâlâ reference'lı haldeyken free edilir.
  2. Saldırgan, free edilen allocation'ı kontrollü içerikle yeniden almak için host heap'i groom eder.
  3. Takip eden bir SVGA command dangling reference'ı dereference eder ve onu VMX process'inde bir corruption primitive'ine çevirir.
  4. O primitive, host üzerinde control flow / keyfi code execution'a escalate edilir (guest-to-host escape).

Generic şekil UAF primitive'idir (../primitive/use-after-free.md); exploit ayrıntıları atlanmıştır.

Detection

  • Bir guest için vmware.log SVGA/3D hataları ve vmware-vmx crash'leri/ backtrace'leri.
  • vmware-vmx'ten gelen anormal child process'leri veya memory operation'larını işaretleyen host EDR.
  • SVGA object yaşam süreleri etrafında heap-hardening / allocator telemetry (poison, quarantine) isabetleri.
  • Heap grooming'le tutarlı SVGA object create/destroy operation patlamaları.

Mitigation

  • VMSA-2020-0015 patch'lerini uygula (ESXi 6.5/6.7/7.0, Workstation 15.5.5, Fusion 11.5.5).
  • Workaround: 3D acceleration'ı disable et (VM > Settings > Display > "Accelerate 3D graphics" işaretini kaldır).
  • Untrusted guest'ler için 3D acceleration'ı enable etme; host exploit mitigation'larıyla eşleştir (../mitigation/data-execution-prevention.md, ../mitigation/address-space-layout-randomization.md).

References