Skip to content

VMware XHCI USB info leak (CVE-2020-3965)

VMware'in xHCI USB controller'ındaki bir information leak, local bir guest'in host vmware-vmx process'inden privileged hypervisor memory'sini bir out-of-bounds read üzerinden okumasına olanak tanır.

Mechanism

Boundary neden kırılıyor

VMware, xHCI (USB 3.0) host controller'ını vmware-vmx process'i içinde emüle eder. Guest, transfer descriptor'larını (TRB'ler) ve context yapılarını shared/guest physical memory'ye yerleştirerek ve host'un kendi buffer'larını index'lemek için kullandığı length ve offset field'larını sağlayarak onu sürer. Kusur (CWE-125, out-of-bounds read): guest-controlled bir length/offset tam olarak range-check'ten geçmez, böylece host amaçlanan buffer'ı aşarak okur ve o byte'ları guest'e döndürebilir. Aşılan invariant evrensel emüle-device kuralıdır: guest tarafından sağlanan length'ler ve offset'ler, host memory'sini index'lemeden önce validate edilmelidir. Açığa çıkan byte'lar privileged host memory'sidir, dolayısıyla bu bir crash değil bir ASLR/secret-sızdıran primitive'dir. VMware: ürünler "XHCI USB controller'da bir information leak içerir" ve local bir aktörün "privileged bilgiyi okumasına" izin verir.

Walkthrough

VMSA-2020-0015 / NVD'den kavramsal yeniden kurgu. Yalnızca mantık; weaponize edilmemiş.

Patch'lenmiş / tarihsel

2020'de açıklandı ve düzeltildi (VMSA-2020-0015). Detection ve anlayış için gösterilmiştir, desteklenen build'lerde yeniden üretim için değil.

  1. Guest'teki local bir aktör, emüle xHCI controller'ın transfer ring'lerini / context yapılarını, length veya offset field'ı index'lediği host buffer'ı aşan bir request ile programlar.

  2. Host'un xHCI read path'i o field'ı tam bir bounds check olmadan kullanır ve komşu host memory'sini okur.

  3. O out-of-bounds byte'lar — privileged vmware-vmx memory'si — guest-visible memory'ye döndürülür ve host secret'larını/pointer'larını açığa çıkarır.

Detection

  • Host-side: Bir infoleak sessizdir (crash yok). ASan/valgrind tarzı tooling xHCI path'indeki OOB read'i flag'ler; production host'larda vmware.log xHCI/USB aktivitesini anormal guest request paternleriyle korele edin.
  • Behavioral: xHCI TRB'leri/context'lerini oversized veya malformed length/offset field'larıyla yayan bir guest, normal USB kullanımı için anormaldir.
  • Chaining sinyali: Bir leak genellikle bir write girişiminden önce gelir — sonraki bir vmware-vmx crash'ini izleyin (krş. eşlenmiş CVE-2020-3968 OOB write).

Mitigation

  • Patch: VMSA-2020-0015'i uygulayın. Düzeltilmiş: Workstation 15.5.2, Fusion 11.5.2, ESXi 6.5 = ESXi650-202005401-SG, ESXi 6.7 = ESXi670-202006401-SG, ESXi 7.0 = ESXi_7.0.0-1.20.16321839.
  • Config hardening: USB 3.0'a ihtiyaç duymayan guest'lerden virtual USB 3.0 / xHCI controller'ı kaldırın; vulnerable read path'ini kaldırır.
  • Defense in depth: Host'ları patch'li tutun; böylece bu leak bir host-memory-corruption bug'ını weaponize etmek için gereken adres disclosure'ını sağlayamaz.

References