Skip to content

VMware shader out-of-bounds read (CVE-2020-3970)

3D-graphics shader path'indeki bir out-of-bounds read, non-admin bir guest'in VMX process'ini crash etmesine izin verir (partial DoS).

Mechanism

The invariant that is crossed

3D acceleration etkinken, hypervisor guest-sağlanan shader program'larını compile/translate eder. Korunan boundary guest → host VMX stability / confidentiality'dir. CVE-2020-3970 shader handling'de bir out-of-bounds read'tir: hazırlanmış bir shader, translator'ın bir input buffer'ın sınırlarını aşarak index'lemesini sağlar. Parsing code'u guest-kontrollü bir length/offset'e güvendiği için okumaması gereken belleği okur, ki bu durumda invalid belleği dereference eder ve vmx process'ini crash eder — bir partial denial of service. İhlal edilen invariant, attacker-kontrollü input üzerindeki spatial memory safety'dir.

Moderate (CVSS 4.0) olarak değerlendirildi: non-administrative guest erişimi, DoS etkisi (VMX crash), 3D graphics etkin olmalı.

Walkthrough

High-level, VMSA-2020-0015'ten (Wei Lei ve anhdaden, STAR Labs — Trend Micro Zero Day Initiative ile çalışarak raporladı):

  1. 3D graphics etkin bir guest'ten, SVGA 3D interface'i üzerinden malformed bir shader submit edin.
  2. Shader translator guest-kontrollü descriptor'ları parse eder ve amaçlanan buffer'ın dışını okur.
  3. Invalid access fault verir ve vmx worker'ını terminate eder — VM'in host tarafı process'i ölür (partial DoS).

Detection

  • 3D/shader aktivitesiyle korele vmx crash'leri/backtrace'leri gösteren vmware.log; tekrarlayan VM reset'leri.
  • Belirli bir guest'e bağlı vmware-vmx abort'ları için host process izlemesi.
  • Guest GPU log'larında malformed shader submission'larında ya da 3D-pipeline error'larında ani artışlar.

Mitigation

  • VMSA-2020-0015'i uygulayın: ESXi 6.5/6.7/7.0, Workstation 15.5.5, Fusion 11.5.5.
  • Workaround: 3D acceleration'ı devre dışı bırakın (VM > Settings > Display, "Accelerate 3D graphics"'i uncheck edin); ESXi'de varsayılan olarak kapalıdır.
  • 3D acceleration'ı güvenilmeyen guest'lere açmayın.

References