Skip to content

VMware SVGA out-of-bounds write guest-to-host RCE (CVE-2017-4924)

SVGA/shader implementation'ındaki bir out-of-bounds write, düşük ayrıcalıklı bir guest'in bir buffer'ın ötesine yazmasına ve host üzerinde kod çalıştırmasına izin verir.

Mechanism

İhlal edilen invariant

SVGA device'ının shader implementation'ı, guest'in sağladığı veriye dayanarak host taraflı buffer'ları yazar. Korunan sınır guest → host code execution'dır. CVE-2017-4924 bir out-of-bounds write'tır: kullanıcının sağladığı verinin düzgün validate edilmemesi, emulator'ın allocate edilmiş bir buffer'ın sonunun ötesine yazmasına olanak tanır. Guest'te düşük ayrıcalıklı kod çalıştırabilen bir saldırgan, o write'ı komşu host belleğini — pointer'ları, function table'larını ya da heap metadata'sını — bozacak şekilde yönlendiren değerler sağlar; bu host üzerinde control flow ve code execution'a escalate edilir. İhlal edilen invariant, host process'indeki spatial write safety'dir.

Nico Golde ve Ralf-Philipp Weinmann (Comsecuris) tarafından ZDI üzerinden raporlandı; VMSA-2017-0015'te düzeltildi (Eyl 2017).

Walkthrough

VMSA-2017-0015 ve public disclosure'dan, yüksek seviyeden:

  1. Düşük ayrıcalıklı guest kodundan, SVGA shader yolunu hazırlanmış parametrelerle sür.
  2. Emulator, allocate edilmiş buffer'ın ötesine (OOB write) komşu host belleğine yazar.
  3. Overwrite edilen hedefi kontrol etmek, write'ı bir control-flow primitive'ine çevirir ve host code execution'a escalate edilir (guest escape).

../primitive/out-of-bounds-write.md'e bak; exploit ayrıntıları atlanmıştır.

Detection

  • SVGA/shader kodunda vmware-vmx abort'larını gösteren vmware.log ve host crash dump'ları.
  • Host heap/stack corruption telemetry ve control-flow-integrity ihlalleri.
  • shader/SVGA aktivitesinin ardından anormal VMX-process execution'ını işaretleyen EDR.

Mitigation

  • VMSA-2017-0015'i uygula (ESXi 6.5 patch'i, Workstation 12.5.7, Fusion 8.5.8).
  • Untrusted guest'ler için 3D ve SVGA feature'larını disable et / minimize et.
  • Host CFG/DEP/ASLR ve allocator hardening'i enabled tut.

References