Hyper-V status-code-handling guest-to-host RCE (CVE-2024-49117)¶
Low-privileged bir guest, Hyper-V'nin bir status code'u yayarken (CWE-393) yanlış ele aldığı crafted request'ler verir ve bir tenant'ın VM boundary'sini aşmasına ve host root partition üzerinde kod çalıştırmasına izin verir.
Mechanism¶
Note
Hyper-V büyük bir guest-to-host request yüzeyi sunar: VMBus channel'ları, root partition'daki VM worker process (VMWP) tarafından servis verilen synthetic device'lar ve hypervisor'a hypercall'lar. Her request path'inin, operasyonun başarılı olup olmadığını, reddedilip reddedilmediğini ya da kısmen tamamlanıp tamamlanmadığını açıklayan input'u doğrulaması ve bir status'u sadakatle döndürmesi beklenir.
CVE-2024-49117, CWE-393 — Return of Wrong Status Code'a karşılık gelir. İhlal edilen kavramsal invariant şudur: bir failure (reddedilen request, bad length, unmapped resource), caller'ın failure olarak ele aldığı ve temiz şekilde unwind ettiği bir status'u yüzeye çıkarmalıdır. Bir handler yanlış status döndürdüğünde — örn. operasyonun aslında başarısız olduğu yerde başarı raporlamak ya da bir error path'i maskelemek — downstream host kodu sanki bir buffer/object geçerliymiş gibi devam eder. Abort etmesi gereken bir failure'ı geçip devam etmek, guest-controlled bir koşulun host'u tutarsız bir state'e (kısmen-initialize edilmiş verinin kullanımı, stale ya da yanlış boyutlu bir object) yönlendirmesine izin verir; bu da memory corruption ve nihayetinde host üzerinde code execution için foothold'dur.
Yanlış ele alınan status host (root partition) context'inde gözlemlendiği için, tek bir low-privileged guest kullanıcısı isolation boundary'sini aşıp shared host'a geçer — bir guest-to-host escape. Microsoft, aynı primitive'in shared bir host'ta cross-VM impact'e yönlendirilebileceğini not eder.
Warning
Bu kavramsal bir catalogue girdisidir. Microsoft function seviyesinde internal yayınlamadı ve doğrulanmış public bir proof-of-concept yoktur. CWE-393 sınıflandırması ve guest-to-host RCE impact'i load-bearing public gerçeklerdir; tam offset'ler ve corrupt edilen object açıklanmamıştır ve burada yeniden üretilmemiştir.
Walkthrough¶
High-level conceptual path (from the public advisory)
Guest (low-priv user) ── crafted request ──> Hyper-V host request handler
e.g. a VMBus / synthetic-device / hypercall operation
Host handler hits a failure condition (validation/length/resource)
but returns the WRONG status code (CWE-393)
-> caller interprets failure as success / skips error unwind
-> continues using an object/buffer that should have been rejected
Inconsistent host state (stale, partially-init, or wrong-size object)
-> guest-influenced memory corruption in root-partition context
-> guest-to-host code execution (and/or cross-VM impact)
Microsoft sorunu Critical olarak derecelendirdi: CVSS 3.1 base score 8.8, vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H (bu vector tek başına 8.8'i verir). Aynı entry'de
temporal score 7.7 raporlanır (E:U/RL:O/RC:C — exploit unproven, official fix, confirmed);
yani public kaynaklarda görülen düşük rakam temporal metrik'tir, base score değil. Exploitation, bir guest
içinde authenticated, low-privileged bir foothold gerektirir; scope change (S:C), guest'ten
host trust boundary'sine geçişi yansıtır. Aralık 2024 Patch Tuesday'de gönderildi.
Detection¶
- Tek bir guest'in request aktivitesiyle ilişkilendirilmiş host bugcheck'leri veya VMWP/root-partition fault'ları; Hyper-V VMBus ya da synthetic-device dispatch path'lerine atıf yapan host kernel/userspace crash dump'larını triyaj edin.
- Anormal ya da malformed guest-originated VMBus/hypercall trafiği, özellikle host handler'larında tekrar tekrar failure koşullarını süren request akışları.
- Tek bir tenant'a izole edilmiş, shared bir host üzerinde tekrarlanan instability ya da beklenmedik davranış — bir tenant'ın bir host tarafı request path'ini probe etmesinin işareti.
- Host üzerindeki EDR'ın VM worker process soyağacında beklenmedik child process'leri ya da bellek anomalilerini işaretlemesi.
Mitigation¶
- CVE-2024-49117 için Aralık 2024 Microsoft güvenlik update'ini uygulayın (etkilenen build'e göre KB 5048653 / 5048654 / 5048667 / 5048685).
- Etkilenen platformlar arasında Hyper-V role'üne sahip Windows 11 22H2/23H2/24H2, Windows Server 2022, Server 2022 23H2 ve Windows Server 2025 yer alır; host'ları güncel bir servicing baseline'da tutun.
- Defense-in-depth: Tüm guest-originated VMBus/hypercall/device input'unu untrusted olarak ele alın; untrusted tenant'lara expose edilen synthetic-device yüzeyini minimize edin; shared host'larda untrusted workload'ları hassas olanlardan izole edin.
- VMWP'ye halihazırda uygulanan compiler/OS hardening (CFG, ACG, CIG, azaltılmış privilege'ler), host-state corruption'ı güvenilir code execution'a çevirmenin maliyetini yükseltir ama patch'in yerini tutmaz.