Xen shadow-mode wrong TLB flush condition (CVE-2022-33745)¶
Xen XSA-408 / CVE-2022-33745: bir XSA-401 refactor'ı bir değişkenin anlamını fonksiyon ortasında değiştirdi ve shadow-paging mode'daki x86 PV guest'ler için hatalı bir TLB-flush condition'ı üretti — gerekli flush'lar atlanır, bu da bir guest'in host belleğini tüketip onu crash etmesine olanak verir (DoS).
Mechanism¶
Note
Shadow paging, live migration için ve bir L1TF workaround'u olarak kullanılır; Xen shadow page table'ları tutar ve onları her değiştirdiğinde TLB'yi flush etmek zorundadır. Invariant şu: flush condition, invalidation gerektiren her durumu doğru biçimde tanımlar. XSA-408 bir refactor kaynaklı mantık hatası: XSA-401 fix'i için kodu yeniden işlerken, bir değişkenin anlamı eski ve yeni konumları arasında değişti, dolayısıyla ortaya çıkan TLB-flush condition'ı yanlıştır ve gerekli olduğu yerlerde flush'ları atlar. Stale shadow translation'ları / sızdırılan shadow memory birikir ve host bellek tükenmesine yol açar (privesc ve info leak dışlanmış değil).
Aşılan sınır, doğru TLB/shadow invalidation'ıdır ve host availability'sini zayıflatır.
Walkthrough¶
Public reference: Xen Security Advisory 408 ve NVD CVE-2022-33745. Kavramsal yol (advisory sınıfı belirtir):
- Bir x86 PV guest'i shadow paging altında çalıştır (örn. migration veya L1TF mitigation sırasında).
- Bir shadow TLB flush'ı tetiklemesi gereken ama buggy condition altında tetiklemeyen pagetable aktivitesini sür.
- Stale state / serbest bırakılmayan shadow memory, host bellek tükenip crash edene kadar birikir.
Warning
Bug sınıfı için belgelenmiş, tarihsel ve patch'lenmiş bir issue. Yalnızca kavramsal.
Detection¶
- Shadow mode'da PV guest çalıştıran host'larda (migration, L1TF workaround aktif) artan hypervisor/shadow bellek tüketimi ve nihayetinde OOM.
- Bellek tükenmesi crash'lerini shadow-paged PV guest'lerle ilişkilendir.
Mitigation¶
xsa408.patch'i (Xen 4.14.x+) /xsa408-4.13.patch'i (4.13.x) uygula.- Workaround: x86 PV guest çalıştırma (yalnızca shadow-mode PV etkilenir).
- Etkilenen: XSA-401 fix'i uygulanmış tüm Xen.
References¶
- Xen Security Advisory 408, "x86 shadow paging: incorrect TLB flush condition", https://xenbits.xen.org/xsa/advisory-408.html
- NVD, CVE-2022-33745, https://nvd.nist.gov/vuln/detail/CVE-2022-33745