Skip to content

Hyper-V use-after-free guest-to-host RCE (CVE-2024-21407)

Authenticated bir guest, virtual hardware resource'larına crafted file-operation / I/O request'leri gönderir, Hyper-V host kodunda bir use-after-free (CWE-416) tetikler ve host üzerinde code execution'a kaçar.

Mechanism

Note

Hyper-V guest I/O'sunu VMBus üzerinden host'a akan synthetic-device ve file-operation path'leri aracılığıyla servis eder: storage request'leri, file/share operasyonları ve diğer "hardware resource" request'leri host bileşenleri (VM worker process / root-partition driver'ları) tarafından açılır ve işlenir. Böyle her request, lifetime'ı boyunca tipik olarak host tarafı object'leri (request descriptor'ları, buffer'lar, channel/handle state'i) allocate eder, reference verir ve free eder.

CVE-2024-21407 bir CWE-416 use-after-free'dir. İhlal edilen invariant object lifetime'dır: bir object free edildikten sonra reference verilmemelidir. Dikkatlice sıralanmış ya da malformed bir file-operation / I/O request serisi, bir host handler'ı dangling bir reference kalırken bir object'i free etmeye (ya da bir error path boyunca free edip sonra aynı descriptor'ı kullanmaya devam etmeye) sürdüğünde, host daha sonra free edilmiş belleği dereference eder. Saldırgan, stale reference kullanılmadan önce o free edilmiş allocation'ı controlled içerikle reclaim edebilirse, dangling pointer host context'inde controlled bir read/write/call primitive'ine dönüşür — guest-to-host code execution'ın temeli.

Free-edilip-yeniden-kullanılan object host root partition'da yaşadığı için, bug VM isolation boundary'sini aşar: bir tenant guest'inden shared host'a kaçar.

Warning

Kavramsal girdi. Microsoft, başarılı exploitation'ın saldırganın authenticated olmasını ve request sequence'ını hazırlamak için hedef ortam hakkında bilgi toplamasını gerektirdiğini not eder — yüksek attack complexity'de (AC:H) yansıtılır. Doğrulanmış public bir PoC yoktur; tam free edilen structure'lar ve offset'ler açıklanmamıştır ve burada yeniden üretilmemiştir.

Walkthrough

High-level conceptual path (from the public advisory)
Guest (authenticated user) ── crafted file-operation / I/O requests ──>
    Hyper-V host handler for the virtual hardware resource (over VMBus)

Request sequence drives a lifetime bug:
   host frees an object (descriptor/buffer/handle state)
     but a stale reference to it survives  (CWE-416)

Attacker reclaims the freed allocation with controlled data
   -> host dereferences the dangling pointer
   -> controlled read / write / indirect call in host context
   -> guest-to-host code execution on the host server

Microsoft bunu Critical, CVSS 8.1 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) olarak derecelendirdi, Mart 2024 Patch Tuesday'de düzeltti. UAF'ı execution'a çevirmenin güvenilirliği, free edilen object'in reclaim'ini heap-grooming'e bağlıdır — kolay değildir, dolayısıyla yüksek complexity derecesi.

CVSS vektörü hakkında

Yukarıdaki vektör Microsoft'un (CNA) NVD'ye verdiği resmi CVSS:3.1 string'idir ve aynen korunmuştur (NVD + MSRC ile doğrulandı). AV:N/PR:N/S:U seçimleri, Microsoft'un Hyper-V guest-to-host yüzeyini puanlama konvansiyonunu yansıtır: guest, host'a network-erişilebilir bir VMBus/synthetic-device kanalı üzerinden ulaştığından AV:N atanmıştır; metindeki "authenticated guest" çerçevelemesi pratik exploitation gereksinimidir, resmi vektördeki PR:N/S:U ile çelişki değil. Vektör burada renumber/recompute edilmemiştir — sadece kaynaklara karşı verify edilmiştir.

Detection

  • Belirli bir guest'in I/O aktivitesiyle ilişkilendirilmiş, storage ya da file-operation dispatch path'lerine atıf yapan host bugcheck'leri / VMWP fault'ları; triyaj için host crash dump'larını saklayın.
  • Anormal ya da malformed guest file-operation / I/O request akışları, özellikle error/teardown path'lerini tekrar tekrar çalıştıran burst'ler (bir object free'yi race etmek ya da zorlamakla tutarlı).
  • EDR/host telemetry: Beklenmedik bellek anomalileri, pool corruption imzaları ya da VM worker process soyağacında anormal child process'ler.
  • Shared bir host'ta tek bir VM'e izole edilmiş co-tenant host instability.

Mitigation

  • CVE-2024-21407 için Mart 2024 Microsoft güvenlik update'ini uygulayın; fix, etkilenen request path'indeki object-lifetime handling'i düzeltir.
  • Etkilenen platformlar Hyper-V role'üne sahip Windows 10/11 ve Windows Server 2012 R2'den 2022'ye kadar uzanır; host'ları güncel bir servicing baseline'da tutun.
  • Defense-in-depth: Guest-originated file/I/O request'lerini untrusted olarak ele alın; high-privilege synthetic-device yüzeylerinin untrusted tenant'lara maruziyetini sınırlandırın.
  • VMWP hardening (CFG, ACG, CIG, azaltılmış privilege'ler) ve kernel pool hardening, güvenilir UAF reclaim/exploitation için çıtayı yükseltir ama patch'in yerini tutmaz.

References