VirtualBox VMSVGA3D integer overflow VM escape (CVE-2025-30712)¶
VirtualBox'ın VMSVGA 3D surface-size hesabındaki bir integer overflow, daha büyük bir size'ı izlerken bir buffer'ı yetersiz allocate eder ve out-of-bounds host read/write ile bir guest-to-host escape verir.
Mechanism¶
Bug sınıfı / invariant
VirtualBox, host VMM içinde VMSVGA 3D graphics device'ini emüle eder. Buradaki invariant, bir
surface için allocate edilen buffer'ın device'in sonradan kullandığı size ile eşleşmesidir.
CVE-2025-30712 bir integer overflow / wraparound'dur (CWE-190): vmsvga3dSurfaceMipBufferSize
overflow eder, böylece bir 0-byte allocation yapılırken VirtualBox daha büyük bir izlenen
size kaydeder.
Daha sonra vmsvga3dSurfaceMapInit, guest-supplied boyutlardan bir row stride (cbRow) hesaplar
ama gerçek allocation size'a karşı validate etmez. Surface'i dolaşan operasyonlar sonra
yetersiz boyutlu buffer'ın dışında okur ve yazar — host VMM belleğine yapılan lineer bir
out-of-bounds write (ve OOB read).
Kavramsal kök neden, bir integer overflow'dan doğan bir size/allocation uyumsuzluğu'dur: allocator ile consumer, buffer'ın gerçek size'ı konusunda anlaşamaz ve consumer guest-controlled boyutlara güvenir. Public analiz, bunu keyfi host R/W'sine ve host graphics state'indeki function pointer'lar üzerinden control-flow'a yükseltmeyi tarif eder.
Walkthrough¶
Yalnızca kavramsal
Google security-research advisory'sinden (GHSA-qx2m-rcpc-v43v) ve NVD'den alınmış üst düzey bir model. Silahlandırılmış bir exploit, offset veya gadget chain yeniden üretilmemiştir.
- Bir 3D surface oluştur (privileged bir guest olarak) size hesabını overflow edecek şekilde seçilmiş boyutlarla, ufak/sıfır bir allocation ama büyük bir izlenen size'a zorlayarak.
- Surface'i map'le ve üzerinde işlem yap.
cbRow, guest boyutlarından türetilir, gerçek allocation'a karşı kontrol edilmez. - Out-of-bounds oku/yaz. Surface-dolaşan komutlar, buffer'ın ötesindeki host belleğine erişir.
- Escape'e yükselt. OOB R/W, host control structure'larının üzerine yazmaya yönlendirilir ve guest-to-host code execution'a ulaşır (CVSS scope changed, C:H/I:H).
Detection¶
Host / telemetri sinyalleri
- VMM crash'leri guest 3D/VMSVGA aktivitesiyle korele; dump'ları ve VBox.log'u topla.
- Anormal 3D surface komutları: aşırı boyutlarla surface oluşturan guest'ler.
- EDR: VirtualBox VMM'inde heap-corruption veya control-flow anomalileri.
Mitigation¶
Patch & sıkılaştırma
- Oracle patch'ini uygula. VirtualBox 7.1.8'de düzeltildi (Oracle Critical Patch Update, Nisan 2025).
- İhtiyaç duymayan VM'ler için 3D acceleration'ı devre dışı bırak — bu VMSVGA3D surface'ini kaldırır.
- VirtualBox'ı güncel tut Oracle Critical Patch Update'leri üzerinden; yalnızca güvenilir guest'leri çalıştır.
- VMM'i least-privilege ile çalıştır ki başarılı bir escape sınırlansın.