VMware UHCI USB info leak from VMX (CVE-2024-22255)¶
UHCI USB controller'ındaki bir information-disclosure hatası, bir admin guest'in host VMX process'inden bellek leak etmesine izin verir.
Mechanism¶
İhlal edilen invariant
Emüle edilen UHCI USB controller, guest'in tanımladığı buffer'lar ile VMX process'indeki host taraflı buffer'lar arasında veri kopyalar. Korunan sınır guest → host memory confidentiality'dir. CVE-2024-22255 bir information-disclosure bug'ıdır: guest'in kontrol ettiği bir length/offset (ya da bir host buffer'ının over-read'i) emulator'ın guest'e amaçlanandan daha fazla host belleği döndürmesine yol açar ve VMX process'inin içeriğini leak eder. Bu tür leak'ler değerlidir çünkü ASLR'yi yenen ve sonraki bir memory-corruption escape'ini tohumlayan host pointer'larını/layout'unu açığa çıkarır. İhlal edilen invariant, device'ın guest'e asla uninitialized ya da bölge dışı host belleği döndürmemesi gerektiğidir.
Important olarak derecelendirildi (CVSS 7.1). VM'e administrative erişim gerektirir. UHCI/XHCI UAF escape'leriyle (CVE-2024-22252/22253) birlikte VMSA-2024-0006'da düzeltildi.
Walkthrough¶
VMSA-2024-0006'dan, yüksek seviyeden:
- Admin-ayrıcalıklı bir guest'ten, boyut/region tanımı emulator'ı amaçlanan host verisinin ötesine okumaya iten UHCI transfer'larını programla.
- Emulator o host belleğini guest'in görebileceği bir buffer'a geri kopyalar.
- Guest, leak edilen VMX-process belleğini (pointer'lar/secret'lar) okur, tipik olarak daha büyük bir escape zincirinin info-leak aşaması olarak.
Detection¶
- Bir guest için
vmware.logUSB/UHCI anomalileri; aynı guest'in daha sonra corruption denemesiyle korele et (zincir davranışı). - Olağandışı UHCI transfer descriptor pattern'leri ya da oversized read'ler için host telemetry.
- leak→corrupt dizisi için
vmware-vmx'in EDR monitoring'i.
Mitigation¶
- VMSA-2024-0006'yı uygula (ESXi 7.0/8.0, Workstation 17.x, Fusion 13.x).
- Untrusted VM'lerden virtual USB controller'ları kaldır.
- Tek bir leak'in anında daha az kullanışlı olması için host ASLR'yi sürdür.