Skip to content

VirtualBox OHCI USB uninitialized variable LPE (CVE-2020-2575)

VirtualBox'ın OHCI USB controller emülasyonu, belleği düzgün initialize etmeden kullanır ve privileged bir guest'e host VMM context'ine bir privilege-escalation primitive'i verir (tipik olarak tam bir escape için chain'lenir).

Mechanism

Bug sınıfı / invariant

VirtualBox, VMM içinde bir OHCI USB host controller'ı emüle eder. Buradaki invariant, belleğin okunup üzerinde işlem yapılmadan önce tamamen initialize edilmesidir. CVE-2020-2575 bir use of uninitialized resource'tur (CWE-908): OHCI endpoint data işleme sırasında kod, hiçbir zaman düzgün initialize etmediği belleğe erişir.

Uninitialized içerik etkilenebilir ya da sızdırılabilir olduğu için, bug bir attacker'ın kaldıraç olarak kullanabileceği bir primitive sağlar — kavramsal olarak bir access of uninitialized pointer / data. ZDI, tam host code execution'a ulaşmak için bunun diğer bug'larla chain'lenmesi gerektiğini not eder; tek başına hypervisor context'ine bir privilege-escalation adımıdır.

Kavramsal kök neden, bir emülasyon yolundaki eksik initialization'dır; ince ama klasik bir leak ve bozulabilir state kaynağı.

Walkthrough

Yalnızca kavramsal

ZDI advisory'sinden (ZDI-20-582) ve NVD'den alınmış üst düzey bir model. Exploit, offset veya gadget sağlanmamıştır.

  1. OHCI endpoint işlemesini sür privileged bir guest'ten özel hazırlanmış USB aktivitesiyle.
  2. Uninitialized read'e ulaş. Emülasyon yolu, hiç initialize edilmemiş belleği kullanır.
  3. Bayatlamış/etkilenmiş içeriği kaldıraç olarak kullan bir exploitation primitive olarak (info leak / bozulabilir state).
  4. Escape'e chain'le. Başka bir bug'la birleşince, bu host code execution'a doğru yükselir (CVSS scope changed, C:H/I:H/A:H, yüksek attack complexity).

Detection

Host / telemetri sinyalleri

  • VMM instabilitesi guest USB/OHCI aktivitesiyle korele; dump'ları ve VBox.log'u topla.
  • Bir guest'ten anormal USB device emülasyon trafiği.
  • EDR: VirtualBox VMM'inde memory anomalileri.

Mitigation

Patch & sıkılaştırma

  • Oracle patch'ini uygula. VirtualBox 5.2.40 / 6.0.20 / 6.1.6'da düzeltildi (Oracle CPU, Nisan 2020).
  • VirtualBox'ı güncel tut Oracle Critical Patch Update'leri üzerinden.
  • Bir VM'in ihtiyaç duymadığı USB controller'ları devre dışı bırak; minimal USB controller modelini tercih et.
  • Yalnızca güvenilir guest'leri çalıştır; chain'lenen bir escape'i sınırlamak için VMM'i least-privilege ile çalıştır.

References