Hyper-V race-condition DoS (CVE-2022-22713)¶
Local, authenticated bir kullanıcı, Windows Hyper-V hypervisor'ının bir shared resource handling'ine karşı bir timing race kazanır, virtualization stack'i istikrarsızlaştırır ve virtual machine'lerine hizmeti reddeder (CVE-2022-22713, Mayıs 2022).
Mechanism¶
Bug class / invariant
Bir race condition (race-condition, CWE-362 "concurrent execution using shared resource with improper synchronization"), iki ya da daha fazla code path'in aynı Hyper-V state'ine yeterli bir lock ya da ordering garantisi olmadan dokunması durumunda ortaya çıkar. Kırılan correctness invariant'ı atomicity'dir: bir shared object'in tutarlı bir görünümünü gözlemlemesi gereken bir operasyon, eşzamanlı bir operasyon tarafından interleave edilebilir; böylece bir path o state'in stale, yarı-initialize edilmiş ya da zaten serbest bırakılmış bir görünümü üzerinde işlem yapar.
CVE-2022-22713'te saldırgan, race'i kazanmak — yani malicious interleaving'i yakalamak —
için yarışan operasyonları tekrar tekrar süren local, authenticated bir kullanıcıdır ve
hypervisor'ı tutarsız bir state'e iter. Microsoft sonucu denial of service olarak
sınıflandırır (code execution yok, privilege elevation yok): impact biti yalnızca
availability'dir (A:H, C:N, I:N).
Aşılan boundary availability isolation'dır: trigger tek bir local context içinde çalışsa da, shared Hyper-V hypervisor'ı istikrarsızlaştırmak host'un virtual machine'leri çalışır tutma yeteneğini etkiler. Microsoft bunu low/medium severity olarak derecelendirdi (CVSS ~5.6 base, düşük confidentiality/integrity etkisi) ve exploitation'ın non-deterministic ve "complicated" olan bir race kazanmayı gerektirdiğini açıkça not etti.
Warning
Açık public olarak açıklandı. Bir race olduğu için exploitation olasılıksaldır — bir saldırgan çok sayıda deneme yapmak zorunda kalabilir ve başarı herhangi tek bir denemede garanti değildir.
Walkthrough¶
Sadece high-level. Microsoft'un advisory'si sınıfı (race-condition DoS) bir trigger yayınlamadan açıklar; aşağıdaki adımlar böyle bir bug'ın generic shape'idir.
Conceptual flow (race-condition DoS)
1. Identify a Hyper-V operation pair that both touch one shared object
(e.g. a state/handle table entry) and rely on a window where the object
is being created, transitioned, or torn down.
2. From a local authenticated context, issue the two operations
concurrently from separate threads, repeatedly, to widen and hit the
unsynchronized window (the "race window").
3. On a winning interleaving, one path observes the object in an
inconsistent state (stale/partially updated) -> the hypervisor reaches an
invalid internal state.
4. The inconsistency manifests as a crash/hang of the virtualization stack
-> denial of service for hosted VMs. No SYSTEM/host code execution.
Advisory'ye göre etkilenen: 20H2-dönemi ve sonrasındaki Windows 10 / 11 ve Windows Server build'leri (örn. Windows 10 21H1/21H2, Server 2019/2022 ailesi).
Detection¶
- Availability monitoring: Yoğun, tekrarlayan, multi-threaded Hyper-V operasyonları veren tek bir local user session ile ilişkilendirilmiş beklenmedik hypervisor/VM stall'ları veya bir host üzerindeki bugcheck'ler (bir race denemesinin grooming pattern'i).
- Virtualization stack'i işaret eden Windows Error Reporting / bugcheck telemetry; bir crash'ten önceki tekrarlanan near-miss'ler (transient error'lar) race-window probing'i işaretleyebilir.
- EDR behavioral: Meşru bir workload gerekçesi olmadan thread'ler arasında eşleştirilmiş Hyper-V syscall/IOCTL'lerinin sıkı loop'larını döndüren low-privileged bir process.
Mitigation¶
- Mayıs 2022 cumulative update'ini uygulayın (örn. KB5013942 ve per-build eşdeğerleri) — bu, etkilenen Hyper-V path'indeki synchronization'ı düzeltir.
- Hyper-V host'larında least privilege uygulayın: Etkilenen interface'e hangi local kullanıcıların ulaşabileceğini sınırlayın ve tek bir tenant'ın race'i komşuları aç bırakamasın diye untrusted workload'ları management host'larından izole edin.
- Race sınıfları için genel hardening: Hypervisor'ı patch'li tutun (locking fix'leri tek gerçek remediation'dır); availability-odaklı monitoring exploitation denemelerini yakalar ama onları engellemez.