Xen PoD physmap order alignment (CVE-2021-28704)¶
Xen XSA-388 / CVE-2021-28704 (CVE-2021-28707/28708 ile birlikte): populate-on-demand hypercall handler'ları, istenen page order için base page-frame number'ın aligned olmasını zorunlu kılmıyor; bu da malicious bir HVM/PVH guest'in host'u crash etmesine olanak veriyor (DoS; privesc/info-leak dışlanmış değil).
Mechanism¶
Note
Populate-on-demand (PoD), bir guest'in gerçekte arkasında backing olandan
(memory) daha fazla bellekle (maxmem) configure edilmesini sağlar;
page'ler ilk erişimde populate edilir. XENMEM_decrease_reservation ve
XENMEM_populate_physmap gibi hypercall'lar bir page order (superpage
boyutu) kabul eder. Invariant şu: bir order ile geçirilen base GFN, o order'a
aligned olmalıdır. XSA-388 bir missing alignment check: bu hypercall'ların
PoD implementation'ları belirtilen order için base-GFN alignment'ını zorlamaz,
dolayısıyla bir guest misaligned superpage operasyonlarını sürerek p2m
state'ini tutarsız hale getirip host'u crash edebilir.
Aşılan sınır, guest belleğinin arkasında duran p2m / PoD accounting'inin tutarlılığıdır.
Walkthrough¶
Public reference: Xen Security Advisory 388 ve NVD CVE-2021-28704. Kavramsal yol (advisory sınıfı belirtir):
- PoD aktif (
maxmem>memory) bir HVM/PVH guest configure et (ya da onun içinde çalış). XENMEM_populate_physmap/XENMEM_decrease_reservation'ı bir page order ve o order'a aligned olmayan bir base GFN ile çağır.- Xen misaligned superpage isteğini işler, p2m/PoD state'ini bozar ve host'u crash eder.
Warning
Bug sınıfı için belgelenmiş, tarihsel ve patch'lenmiş bir issue. Yalnızca kavramsal.
Detection¶
- physmap/reservation hypercall'ları gönderen HVM/PVH guest'lerle ilişkili host crash'leri; hypervisor log'larında PoD ile ilgili assertion failure'ları.
- Hangi guest'lerin
memory'den büyükmaxmemile çalıştığını (PoD aktif) envantere al.
Mitigation¶
- Tüm Xen 4.7+ için XSA-388 patch'lerini (
xsa388-1.patch,xsa388-2.patchve branch'e özel varyantlar) uygula. - Workaround: guest config'inin
maxmem'imemory'den büyük ayarlamadığından emin olarak PoD'u devre dışı bırak. - Etkilenen: tüm Xen 4.7+, x86 HVM/PVH guest'ler (4.6 ve öncesi etkilenmez).
References¶
- Xen Security Advisory 388, "PoD operations on misaligned GFNs", https://xenbits.xen.org/xsa/advisory-388.html
- NVD, CVE-2021-28704, https://nvd.nist.gov/vuln/detail/CVE-2021-28704