Xen grant table excessive iteration DoS (CVE-2021-28698)¶
Grant-table maptrack hesaplaması — hiç kullanılmamış olanlar dahil — tüm entry'ler üzerinde iterate eder; bu da bir guest'in uzun CPU-bound taramalarına zorlamasına ve sistem geneli bir DoS'a neden olmasına olanak tanır.
Mechanism¶
Bug sınıfı / invariant
Xen, grant mapping'lerini domain-başına maptrack yapılarında takip eder. Resource-kullanım bookkeeping'i maptrack alanını dolaşır, ancak iterasyon işi aktif set ile sınırlamak yerine kullanılmamış/hiç initialize edilmemiş olanlar dahil tüm entry'leri kapsadı. İhlal edilen invariant şudur: bir guest adına yapılan iş, mümkün olan maksimum tablo boyutuna değil, gerçek resource kullanımına orantılı olmalıdır. Maptrack alanını şişiren bir guest, host CPU'sunu aç bırakan uzayan, verimsiz bir iterasyona zorlar.
Walkthrough¶
Yalnızca kavramsal
XSA-380'den üst düzey yeniden kurulum.
- Bir guest çok sayıda grant mapping oluşturur (maptrack frame'lerini büyütür).
- Maptrack'i tarayan operasyonlar artık kullanılmamış slot'lar dahil şişmiş alan boyunca iterate eder.
- Bu taramaları tekrar tekrar tetiklemek CPU'yu tekeline alır ve host'un tamamını yavaşlatır.
Detection¶
- Anormal derecede yüksek grant-mapping sayıları / maptrack frame büyümesi olan guest'ler.
- Bir domain'in grant-table aktivitesiyle korele CPU açlığı.
Mitigation¶
- İterasyonu aktif entry'lerle sınırlayan XSA-380 patch'ini uygula (Xen 4.11–4.15.x ve unstable).
- Konfigürasyon:
gnttab_max_maptrack_frames'i sınırla (örn.=256) veya hiç grant map etmeyen non-driver domain'ler içinmax_maptrack_frames=0ayarla.