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:
- Bir vmxnet3 adapter'a sahip bir guest içinde local administrator elde edin (device'ın driver-seviyesinde kontrolü).
- vmxnet3 descriptor ring'lerini / konfigürasyonunu, host'un size aritmetiği overflow yapacak şekilde seçilmiş length/count field'larıyla programlayın.
- 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.
- 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-vmxcrash'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.