Xen p2m query lock leak (CVE-2018-19964)¶
Xen XSA-277 / CVE-2018-19964: x86 p2m (physical-to-machine) query helper'ının belirli failure path'leri p2m lock'unu serbest bırakmadan döner ve onu sonsuza kadar tutulu bırakır — kötü niyetli bir HVM/PVH guest tüm host'u deadlock'a sokabilir (DoS).
Mechanism¶
Note
Bir domain'in p2m mapping'ini arayan internal helper, query'yi tutarlı tutmak için varsayılan olarak p2m lock'unu acquire eder. Invariant şudur: her return path'i aldığı lock'u serbest bırakır. XSA-277 bir error path'lerinde lock-leak'tir: belirli failure branch'leri p2m lock'unu düşürmeden döner. Bir kez leak olduğunda lock süresiz tutulur; bir sonraki acquirer (diğer guest'lere hizmet veren hypervisor dâhil) sonsuza kadar blok olur ve host'u deadlock'a sokar.
Aşılan sınır host availability'dir: guest tarafından ulaşılabilen bir error path'i, hypervisor'ı canlı tutan locking disiplinini baltalar.
Walkthrough¶
Public reference: Xen Security Advisory 277 ve NVD CVE-2018-19964 (Paul Durrant, Citrix). Conceptual path (advisory sınıfı belirtir):
- Bir HVM/PVH guest'ten, p2m query helper'ını unlock'u atlayan failure path'lerinden birine yönlendiren bir operasyon sürükle.
- p2m lock'u leak olur ve tutulu kalır.
- Host genelindeki sonraki p2m operasyonları leak olan lock üzerinde blok olur ve hypervisor genelinde bir deadlock / DoS üretir.
Warning
Bug sınıfı için belgelenmiş tarihsel, patch'lenmiş bir sorun. Yalnızca conceptual.
Detection¶
- Tek bir guest'in p2m failure path'lerini tetiklemesiyle ilişkili, vCPU'ları bir p2m lock'unu beklerken takılı kalan host hang'leri / yanıt vermeyen hypervisor.
- Watchdog timeout'ları; hypervisor debug çıktısında stuck-lock diagnostic'leri.
Mitigation¶
xsa277.patch'i uygula (xen-unstable ve Xen 4.11.x); bu, lock'u tüm failure path'lerinde serbest bırakır.- Etkilenen: Xen 4.11+, yalnızca x86, untrusted HVM/PVH guest'ler çalıştıran sistemler (yalnızca PV sistemler etkilenmez; ARM etkilenmez). Patch hemen mümkün değilse yalnızca PV guest'ler çalıştır.
References¶
- Xen Security Advisory 277, "x86: incorrect error handling for guest p2m queries leaks the p2m lock", https://xenbits.xen.org/xsa/advisory-277.html
- NVD, CVE-2018-19964, https://nvd.nist.gov/vuln/detail/CVE-2018-19964