Skip to content

Xen XSA-148 PV pagetable fast-path validation guest-to-host

Xen XSA-148 / CVE-2015-7835: bir PV guest, L2 pagetable-entry validation'ını bypass ederek — allowsuperpage olmadan bile — writeable superpage (large-page) mapping'leri oluşturabilir; bu da PV memory safety'yi bozar ve tüm sistemin kontrolünü verir.

Mechanism

Note

Xen PV guest'leri kendi page table'larını kendileri yazar, fakat Xen her entry'i validate eder ve korunan sayfaları (örn. pagetable sayfaları) read-only tutar. Isolation invariant'ı şudur: bir PV guest, Xen'in read-only tutması gereken belleğin üzerine binen bir writeable mapping'i asla oluşturamamalıdır. XSA-148 bir PTE-validation bypass'tır: L2 page-table-entry validation'ı (mod_l2_entry içinde) atlatılabilir ve bir PV guest'in writeable superpage (2 MB) mapping'leri oluşturmasına izin verir. Read-only/korunan belleğin üzerine binen writeable bir large page bu invariant'ı bozar — guest, kontrol etmemesi gereken belleğe write erişimi ve dolayısıyla sistemin tam kontrolünü kazanır. Dikkat çekici nokta, bunun allowsuperpage option'ı kullanılmasa bile çalışmasıdır.

Bu, Ouroboros pagetable bug'larının superpage tarafıdır; bkz. Xen Ouroboros hypercall vulnerabilities and the sibling self-reference bug XSA-182 PV pagetable / Qubes escape.

Walkthrough

Public reference: Xen Security Advisory 148 ve NVD CVE-2015-7835. Kavramsal yol (temsili; advisory sınıfı belirtir):

  1. Bir PV guest administrator olarak, write bit'i set edilmiş bir superpage (PSE) mapping'i oluşturan bir L2 page-table entry hazırla.
  2. Update'i mod_l2_entry validation'ından sızacak şekilde yürüt (fast-path değişikliği güvenli sayar; PSE+W mekaniği için Ouroboros notuna bak).
  3. Ortaya çıkan writeable large-page mapping, read-only olması gereken belleğin — örn. bir pagetable sayfasının — üzerine biner ve guest'e onun üzerinde write kontrolü verir.
  4. O page table'ları düzenlemek arbitrary machine-frame read/write ve host compromise sağlar.

Beklenen gözlem: mod_l2_entry çevresinde hypervisor MM warning/violation'ları, ya da allowsuperpage disabled iken superpage L2 mapping'leri deneyen PV guest'ler.

Warning

Bug sınıfı için belgelenmiş, tarihsel ve patch'lenmiş bir issue. Yalnızca kavramsal — exploit offset'i veya layout yok.

Detection

  • Özellikle allowsuperpage disabled iken superpage L2 mapping'leri deneyen PV guest'ler.
  • PV altında read-only kalması beklenen sayfaların integrity monitoring'i; mod_l2_entry yakınındaki hypervisor MM violation'ları.

Mitigation

  • xsa148*.patch'i uygula (L2 PTE validation'ını düzeltir). Etkilenen: Xen 3.4 ve sonrası (NVD: 3.4 ile 4.6.x arası); yalnızca PV guest'ler (32- ve 64-bit); HVM etkilenmez; yalnızca x86. Guest-administrator privilege gerektirir (CVSS v2 7.2, tam compromise). Untrusted guest'ler için HVM/PVH'yi tercih et.

References