Skip to content

Xen XSA-317 (event-channel/hypercall) guest DoS

Xen XSA-317 / CVE-2020-15566: event-channel port allocation'daki hatalı error handling, invalid bir "valid" port döndürebilir; sonraki bir erişim host'u crash eder — guest-to-host bir denial of service.

Mechanism

Note

Xen, bir guest için event-channel port'larını talep üzerine allocate eder. Isolation invariant'ı şudur: allocation ya kullanılabilir bir port döndürür ya da temiz şekilde fail olur. XSA-317 hatalı error handling'dir: port-allocation kodu üç failure durumunu — port'un zaten kullanımda olması, bir memory-allocation failure'ı ve port'un desteklenen limiti aşması — doğru şekilde ele alamaz ve aslında invalid olan bir "valid" port döndürebilir. O event channel'a yapılan sonraki bir erişim host'u crash eder ("will result to a crash when trying to access the event channel"). NVD: bir guest OS kullanıcısı, event-channel port allocation'daki hatalı error handling nedeniyle bir host OS crash'ine sebep olabilir.

Bu, diğer event-channel bug'larının allocation-error kardeşidir; bkz. Xen PV hypercalls and XSA-107 control-block mishandling DoS.

Walkthrough

Public reference: Xen Security Advisory 317 ve NVD CVE-2020-15566. Kavramsal yol (temsili; advisory sınıfı belirtir):

  1. Çok sayıda event channel kullanacak şekilde yapılandırılmış/izin verilmiş bir guest'ten (default 1023'ten fazla), port allocation'ı kontrol edilmeyen failure yoluna sür — örn. desteklenen limiti aşarak ya da host out-of-memory altında.
  2. Allocation, invalid-ama-"valid" bir port döndürür.
  3. O port'a bir erişimi tetikle; host crash olur (yalnızca availability etkisi).

Beklenen gözlem: bir guest event-channel limitine yaklaşırken/aşarken ya da host OOM altında, event-channel allocation ile korele olan host crash'i.

Warning

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

Detection

  • Event-channel limitleri default'un (1023) üzerinde yapılandırılmış guest'lere ve limitlere yaklaşan/aşan EVTCHNOP_* allocation aktivitesine alarm ver.
  • Event-channel allocation ile aynı anda meydana gelen host-side OOM koşullarını izle.

Mitigation

  • xsa317.patch'i uygula. NVD'ye göre etkilenen: Xen 4.10.0 ile 4.13.x arası. Patch olmadan mitigation: event-channel limitini arch'a göre güvenli default'ta tut. Güvenli üst sınır: genel olarak ≤1023; ARM'da ≤4095; 64-bit x86 PV'de ≤4095 (host, guest admin'in 32-bit kernel çalıştırmasını engelliyorsa). Default xl/libxl yapılandırmaları bu sınırın altında kalır, dolayısıyla risk altında değildir. CVSS 3.1 6.5 (yalnızca availability).

References