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 —
allowsuperpageolmadan 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):
- Bir PV guest administrator olarak, write bit'i set edilmiş bir superpage (PSE) mapping'i oluşturan bir L2 page-table entry hazırla.
- Update'i
mod_l2_entryvalidation'ından sızacak şekilde yürüt (fast-path değişikliği güvenli sayar;PSE+Wmekaniği için Ouroboros notuna bak). - 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.
- 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
allowsuperpagedisabled iken superpage L2 mapping'leri deneyen PV guest'ler. - PV altında read-only kalması beklenen sayfaların integrity monitoring'i;
mod_l2_entryyakı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¶
- Xen Security Advisory 148, "x86: Uncontrolled creation of large page mappings by PV guests", https://xenbits.xen.org/xsa/advisory-148.html
- NVD, CVE-2015-7835, https://nvd.nist.gov/vuln/detail/CVE-2015-7835