Xen PV cache-incoherency page validation privesc (CVE-2022-26363)¶
Xen XSA-402 / CVE-2022-26363 (CVE-2022-26364 ile birlikte): bir device passthrough yapıldığında CPU cache içeriği RAM'den sapabilir, böylece Xen'in page-type validation'ı bir page'in safe olduğu sonucuna yanlışlıkla varır — malicious bir x86 PV guest yöneticisi tam host kontrolüne escalate eder.
Mechanism¶
Note
Xen, bir PV guest'in Xen tarafından pagetable olarak ele alınan bir page'i doğrudan yazamaması için page başına type reference count'ları tutar: bir page yalnızca içeriği known-safe olduğunda pagetable olarak validate edilir. Invariant, Xen'in bellekte incelediği byte'ların CPU'nun kullanacağı byte'lar olduğunu varsayar. PCI passthrough ile cache-incoherent DMA / non-SelfSnoop davranışı, cache içeriğinin main memory'den sapmasına neden olabilir. XSA-402 bir cache-incoherency validation bug: Xen bir page'i bir coherency view üzerinden okur, safe sonucuna varır, oysa gerçekte farklı (stale/cached) bir view kullanılır — yani guest validation için "safe" içerik sunarken malicious içeriğin yürürlüğe girmesini sağlayabilir, type system'i alt eder ve writeable pagetable erişimi elde eder.
Aşılan sınır, cache incoherency altında PV pagetable type validation'ının bütünlüğüdür.
Walkthrough¶
Public reference: Xen Security Advisory 402 ve NVD CVE-2022-26363. Kavramsal yol (advisory sınıfı belirtir):
- Passthrough yapılmış device'a sahip bir PV guest olarak, bir page'in cached ve in-RAM view'larının farklılaştığı bir bellek düzeni kur.
- Page'i type validation için gönder; Xen "safe" view'ı inceler ve pagetable type'ını verir.
- Etkin (incoherent) içerik farklıdır, bu da guest'in pagetable entry'lerini yazıp tam host kontrolüne escalate etmesine olanak verir.
Warning
Bug sınıfı için belgelenmiş, tarihsel ve patch'lenmiş bir issue. Yalnızca kavramsal. XSA-402 patch'leri önce XSA-401'in uygulanmış olmasına bağlıdır.
Detection¶
- SelfSnoop'tan yoksun CPU'larda (Ivy Bridge öncesi Intel) PCI passthrough'lu PV guest'leri — risk altındaki configuration'ı — envantere al.
- PV altında read-only kalması gereken page'lerin integrity monitoring'i; anormal pagetable type geçişleri.
Mitigation¶
- XSA-402 patch'lerini (Xen 4.13–4.16 ve unstable) XSA-401'den sonra uygula.
- Workaround: device'ları untrusted PV guest'lere passthrough yapma.
- SelfSnoop'a sahip CPU'lar (Intel Ivy Bridge ve sonrası) genellikle etkilenmez. Untrusted tenant'lar için HVM/PVH tercih et.
References¶
- Xen Security Advisory 402, "x86: P2M pool freeing / multiple cache-coherency pagetable issues", https://xenbits.xen.org/xsa/advisory-402.html
- NVD, CVE-2022-26363, https://nvd.nist.gov/vuln/detail/CVE-2022-26363