Skip to content

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):

  1. Bir HVM/PVH guest'ten, p2m query helper'ını unlock'u atlayan failure path'lerinden birine yönlendiren bir operasyon sürükle.
  2. p2m lock'u leak olur ve tutulu kalır.
  3. 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