Skip to content

VMware vmxnet3 integer overflow host code execution

VMware'in emüle ettiği vmxnet3 paravirtual NIC'inde guest tarafından tetiklenebilir bir integer overflow (CVE-2025-41236): bir guest admin device'ı öyle sürer ki bir size hesaplaması wrap olur; bu da host VMX process'inde bir out-of-bounds write ve host üzerinde code execution üretir. Pwn2Own Berlin 2025'te raporlandı.

Mechanism

Note

vmxnet3, VMware'in paravirtual network adapter'ıdır. Guest driver ve host device backend'i (vmware-vmx / VMX process'inde), guest tarafından okunabilir/yazılabilir memory'de descriptor ring'leri ve length field'larını paylaşır. Isolation invariant'ı, host backend'in guest tarafından sağlanan her length/count'u untrusted olarak ele alıp onu allocation ya da copy aritmetiğinde kullanmadan önce validate etmesidir. CVE-2025-41236 bir integer-overflow (CWE-190 sonucu CWE-787)'dur: guest-controlled bir değer, küçük (ya da başka türlü yanlış) bir değere wrap olan bir size hesaplamasına katılır; böylece copy orijinal büyük niyeti kullanırken bir buffer eksik boyutlandırılır — host memory'ye bir out-of-bounds write. Aşılan boundary guest → host'tur: overflow host VMX process bağlamında çalışır, dolayısıyla Workstation/Fusion'da bu host makinesinde code execution anlamına gelebilir.

Bu, VMware VMCI integer underflow OOB write ile aynı untrusted-length sınıfıdır; ikisi de Pwn2Own Berlin 2025'ten VMSA-2025-0013'te düzeltildi.

Walkthrough

Public, patch'lenmiş issue (VMSA-2025-0013). Atıf verilen advisory'den kavramsal yol — weaponize edilmiş detay yok:

  1. Bir vmxnet3 adapter'a sahip bir guest içinde local administrator elde edin (device'ın driver-seviyesinde kontrolü).
  2. vmxnet3 descriptor ring'lerini / konfigürasyonunu, host'un size aritmetiği overflow yapacak şekilde seçilmiş length/count field'larıyla programlayın.
  3. Host backend, wrap olmuş değere göre allocate eder veya index'ler, ardından guest tarafından sağlanan data'yı VMX heap'inde amaçlanan bound'ların ötesine yazar.
  4. Standart host heap grooming, OOB write'ı bir host object kontrolüne ve nihayet host code execution'a dönüştürür.

Non-exploit bir denemede gözlemlenebilir: anormal vmxnet3 ring programlamasının ardından o VM için vmware-vmx crash.

Warning

Tarihsel/patch'lenmiş, yalnızca kavramsal. CVSS 9.3 (Workstation/Fusion). Exploit geometry'si verilmemiştir.

Detection

  • Host: belirli bir guest'in NIC aktivitesine bağlı vmware-vmx crash'leri; anormal fault'lar için host process üzerinde EDR.
  • Inventory: exposure'ı kapsamlandırmak için vmxnet3 ile yapılandırılmış VM'leri enumerate edin.

Mitigation

  • VMSA-2025-0013 düzeltmelerini uygulayın (ör. Workstation 17.6.4, Fusion 13.6.4 ve karşılık gelen ESXi build'leri). Patch'lemekten başka workaround yok.
  • Mümkün olduğunda untrusted guest'ler için farklı bir NIC modeli (e1000e) kullanın; çünkü yalnızca vmxnet3 ile yapılandırılmış VM'ler expose'dur.
  • Defense-in-depth: device emulation'ı sandbox'lı/least-privileged çalıştırın.

References