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):
- Ç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.
- Allocation, invalid-ama-"valid" bir port döndürür.
- 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¶
- Xen Security Advisory 317, https://xenbits.xen.org/xsa/advisory-317.html
- NVD, CVE-2020-15566, https://nvd.nist.gov/vuln/detail/CVE-2020-15566