Skip to content

VMware ESXi VMCI heap overflow TOCTOU escape (CVE-2025-22224)

Virtual Machine Communication Interface (VMCI)'deki bir time-of-check/time-of-use race bir host heap overflow verir ve bir guest VM-admin'e host vmx process'i olarak code execution sağlar — vahşi doğadaki "ESXicape" zincirinin memory-corruption çekirdeği (VMSA-2025-0004, CVSS 9.3).

Mechanism

Note

VMCI, guest ile host vmx process'i arasında hızlı bir datagram/queue-pair channel'ıdır. Request structure'ları ve queue-pair descriptor'ları kısmen guest'in submit'ten sonra hâlâ değiştirebileceği bellekte yaşar. Isolation invariant'ı şudur: host tarafından doğrulanan bir size/length field'ı, host onu host tarafındaki bir allocation/copy'yi boyutlandırmak ya da sınırlamak için kullanana kadar yetkili kalmalıdır. CVE-2025-22224 bir TOCTOU (CWE-367) double-fetch'tir: host bir length'i bir kez kontrol eder, sonra copy'yi yaparken guest-mutable bir değeri yeniden okur (ya da ona dayanır). Değeri check ile use arasında çevirerek guest, host'un doğrulanan byte'lardan fazlasını yazmasını sağlar — vmx process'inde bir heap buffer overflow (CWE-787 / CWE-122). Komşu heap metadata'sını ya da object pointer'larını corrupt etmek overflow'u vmx olarak control-flow hijack'e dönüştürür ve guest→host boundary'sini geçer.

Bu iki kataloglanmış primitive'i birleştirir: Double-fetch shared-memory ring TOCTOU (race) ve Heap buffer overflow (write). Daha önceki VMware VMCI integer underflow out-of-bounds write ile yakından ilişkilidir.

Walkthrough

Public reference: VMSA-2025-0004 ve Microsoft Threat Intelligence (MSTIC); toolkit analizi "VMCI for memory corruption" diye tanımlar. Kavramsal, weaponize edilmemiş yol:

High-level conceptual steps
  1. VM-admin ayrıcalıklı bir guest'ten, size field'ı guest'in hâlâ kontrol ettiği bellekte yer alan bir VMCI queue-pair / datagram request'i kurun.
  2. Host'un size'ı (time-of-check) sınırlar içinde olarak doğrulamasına izin verin.
  3. Race'i kazanın: host onu copy'yi sınırlamak için tüketmeden önce (time-of-use) size'ı daha büyük bir değere mutate edin.
  4. Host, host buffer'ının tuttuğundan fazlasını kopyalar — vmx'te bir heap overflow.
  5. Bir heap-grooming layout'u (ve adresler için CVE-2025-22226'nın HGFS leak'i) ile birleştirilince, overflow seçilen bir object'i corrupt eder ve execution'ı vmx olarak çalışan attacker code'una yönlendirir.

Warning

Bug sınıfı için belgelenmiş, patch'li, vahşi doğada exploit edilmiş sorun. Race window'u, struct offset'i, grooming reçetesi ya da PoC sağlanmamıştır. Böyle bir TOCTOU'nun güvenilirliği bir leak'e ve grooming'e bağlıdır, bu yüzden bağımsız bir exploit yerine bir zincirde tek bir halka olarak göründü.

Detection

  • Host telemetry: bir guest'ten gelen VMCI device aktivitesiyle korele vmx worldlet panic'leri, segfault'ları ve core dump'ları; vmware.log corruption/abort kayıtları.
  • VMCI I/O anomalies: anormal queue-pair allocation pattern'leri, kayan size field'larıyla request'lerin hızlı yeniden submit'i (sürülen bir TOCTOU race'inin ayırt edici işareti) ya da tek bir VM'den alışılmadık derecede yüksek VMCI datagram hacmi.
  • Heap-grooming signatures: bir crash'ten önce gelen VMCI allocation patlamaları.
  • Chain IOC relevance: bu, vahşi doğadaki "ESXicape" zincirinin (CVE-2025-22224/22225/22226) corruption aşamasıdır; ESXi'yi hedefleyen ransomware aktörleri tarafından exploit edildi ve CISA KEV'de listelendi. VMCI corruption sinyallerini, aynı VM'deki önceki bir HGFS over-read (leak) ve takip eden bir kernel-write / sandbox escape ile korele edin — güçlü IOC herhangi bir tekil event değil, o dizidir.

Mitigation

  • VMSA-2025-0004'e göre patch'leyin (critical, CVSS 9.3): ESXi 7.0 → ESXi70U3s-24585291; ESXi 8.0 → ESXi80U2d-24585300 ya da ESXi80U3d-24585383; Workstation → 17.6.3. VMCI corruption'ın kendisi için patch dışında güvenli bir workaround yoktur.
  • Hardening: kimin VM-admin ayrıcalıkları elde edebileceğini (precondition) kısıtlayın; başarılı bir escape lateral movement vermesin diye ESXi management ağını izole edin ve segmente edin.
  • Defense-in-depth: vmx worldlet sandboxing'ini etkin tutun; yukarıdaki çok-aşamalı chain signature'ını izleyin.

References