Skip to content

Xen XSA-107 FIFO event-channel control-block mishandling DoS

Xen XSA-107 / CVE-2014-6268: hypervisor, bir event'i bind/move etmeden önce bir FIFO event-channel control block'unun var olduğunu doğrulayamaz, böylece bir guest evtchn_fifo_set_pending()'i missing-control-block crash'ine sürebilir — bir guest-to-host denial of service.

Mechanism

Note

Xen'in FIFO event-channel ABI'si, FIFO event'leri o VCPU'ya teslim edilmeden önce (EVTCHNOP_init_control aracılığıyla) initialize edilmesi gereken per-VCPU bir control block tutar. İzolasyon invariant'ı, hypervisor'ın control block'u kullanmadan önce var olup olmadığını kontrol etmesidir. XSA-107 bir missing-initialization check: event'ler hâlâ 2-level ABI mode'undayken bind edilebilir (örn. domain başlamadan önce toolstack tarafından), dolayısıyla bir control block yok olabilir. evtchn_fifo_set_pending() içinde bu, (a) event'in control block'u olmayan bir VCPU'yu hedeflemesi (queue lookup başarısız olur) ya da (b) VCPU 0'ın control block'u olmaması (default-queue erişimi başarısız olur) durumunda bir crash'e yol açar. Böyle bir VCPU'ya FIFO event bind/move eden bir guest, hypervisor'ı crash'e sürükler — guest→host DoS.

Kardeş FIFO event-channel bug'ları: XSA-188 use-after-free (free-but-not-null) ve XSA-359 reordered-read NULL deref (memory ordering).

Walkthrough

Public reference: Xen Security Advisory 107 ve NVD CVE-2014-6268. Kavramsal yol (açıklayıcı; advisory sınıfı belirtir):

  1. Guest'ten, per-VCPU control block'u initialize edilmemiş (o VCPU için başarılı bir init_control yok) bir VCPU'ya FIFO event channel bind ya da move et, ya da VCPU 0'ın bir control block'tan yoksun olmasına dayan.
  2. Event teslimini tetikleyerek evtchn_fifo_set_pending()'in eksik control block ile çalışmasını sağla; queue/default-queue lookup yok olan state'i dereference eder.
  3. Hypervisor crash eder (yalnızca availability etkisi — info leak / code exec yok).

Beklenen gözlemlenebilir: per-VCPU control-block kurulumu tamamlanmadan FIFO event-channel kullanımının ardından evtchn_fifo_set_pending'e izlenen host crash'i.

Warning

Bug sınıfı için belgelenmiş, patch'lenmiş bir issue. Yalnızca kavramsal.

Detection

  • Initialize edilmiş FIFO control block'larından yoksun VCPU'lara event channel bind/move eden guest'ler; per-VCPU init_control tamamlanmadan FIFO event-channel kullanımı.
  • evtchn_fifo_set_pending path'ine izlenen host crash'leri.

Mitigation

  • xsa107-*.patch'i uygula. Etkilenen: Xen 4.4 ve sonrası (NVD 4.4.0, 4.4.0-RC1, 4.4.1'i listeler). Etki yalnızca DoS'tur (CVSS v2 4.9, yalnızca availability).

References