Hyper-V guest-to-host RCE (CVE-2020-16891)¶
Host tarafındaki bir Hyper-V bileşenine crafted input besleyen bir guest, host'ta code execution'a ulaşır — CVSS Scope:Changed ile bir guest-to-host RCE, Hyper-V escape'in en ciddi sınıfı.
Mechanism¶
Boundary neden kırılıyor
Hyper-V'deki guest synthetic device'ları, root partition'daki host tarafı VSP'ler / parser'lar tarafından desteklenir ve VMBus üzerinden erişilebilir. CVE-2020-16891 improper input validation (CWE-20) olarak sınıflandırılır: MSRC, Hyper-V'nin "bir guest işletim sistemindeki authenticated bir kullanıcıdan gelen input'u doğru şekilde validate edemediğini" belirtir. Vulnerable kod host'ta çalıştığından, başarılı bir tetikleme host'ta code execution verir — NVD bunu Scope:Changed (8.8) ile kodlar. İlgili ID'ler aynı guest-to-host RCE sınıfını farklı root cause'larla kapsar: CVE-2020-0910 (CWE-20, network-adjacent), CVE-2024-20700 (race condition, CWE-362), CVE-2024-30010 (relative path traversal, CWE-23) ve CVE-2024-30017 (heap-based buffer overflow, CWE-122). Kırılan invariant: guest'in sağladığı input, host tarafı kod üzerinde işlem yapmadan önce tamamen validate edilmelidir.
Sibling'den farkı
Bu not 2020–2024 dönemine yayılan ve birden çok root cause'u (heap overflow, path traversal, race) kapsayan bir umbrella'dır. Aynı input-validation invariant'ını paylaşan ama yalnızca 2019 CWE-20 set'ini (CVE-2019-0620 ve kardeşleri) işleyen daha dar not için bkz. Hyper-V input-validation guest-to-host RCE.
Walkthrough¶
Public silahlandırılmış PoC yok
Microsoft bu ID'ler için root-cause detayı veya reproduction adımları yayımlamaz ve üçüncü taraf bir teknik yazı bulunamadı. Walkthrough konsept sınıf seviyesi path'tir; somut structure'lar/offset'ler uydurulmamıştır.
-
Bir guest'teki authenticated bir kullanıcı, VMBus üzerinden host destekli bir synthetic device / parser'a crafted input gönderir.
-
Host tarafı handler input'u yanlış validate eder ve altta yatan defect'i tetikler — örn. bir heap overflow (CVE-2024-30017), bir path-traversal (CVE-2024-30010) veya bir race (CVE-2024-20700).
-
Saldırgan, corruption/açığı kullanarak host context'inde kod çalıştırır — tam bir guest-to-host escape (Scope:Changed).
Component notu
Bu mekanizmanın en net public örneği, ilgili vmswitch RNDIS-over-VMBus
sınıfıdır (örn. CVE-2021-28476); burada guest'in network paketleri host root
partition'daki vmswitch.sys tarafından parse edilir. Burada listelenen CVE'ler
Microsoft tarafından belirli bir modüle public olarak atfedilmemiştir.
Detection¶
- Patch/version audit: İlgili update'leri doğrulayın (CVE-2020-16891 için Eki 2020; CVE-2020-0910 için Nis 2020; 2024 ID'leri için Oca ve May 2024).
- Host-side: Bir guest'in synthetic-device traffic'iyle korele host VSP process'lerinde crash'ler veya anormal davranış.
Mitigation¶
- Patch: İlgili Microsoft security update'lerini uygulayın — bu sınıftaki her ID için birincil mitigation.
- Defense in depth: Paylaşımlı host'larda untrusted guest'leri kısıtlayın; host tarafı attack surface'ini küçültmek için gereksiz synthetic device'ları kaldırın.