CVE-2024-35980

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: arm64: tlb: TLBI RANGE operandını düzəlt KVM/arm64, canlı miqrasiya zamanı çirkli səhifələr VMM tərəfindən toplandıqda və səhifə cədvəli qeydləri yazmaqdan qorunduğunda TLB-ləri təmizləmək üçün TLBI RANGE funksiyasına güvənir. Təəssüf ki, 117940aa6e5f commit-i ("KVM: arm64: Define kvm_tlb_flush_vmid_range()") səbəbindən TLBI RANGE təlimatına ötürülən operand düzgün müəyyən edilmir. Bu, TLB-lərin tam təmizlənməməsi və bəzi çirkli səhifələrin buraxılması səbəbindən canlı miqrasiyadan sonra təyinat VM-də crash-a gətirib çıxarır. Məsələn, 0x40000000 (1GB)-dən başlayaraq 8GB yaddaş ayrılmış VM-im var. Qeyd edək ki, hostda əsas səhifə ölçüsü 4KB-dir. Miqrasiyanın ortasında TLB-ləri təmizləmək üçün kvm_tlb_flush_vmid_range() icra olunur. O, MAX_TLBI_RANGE_PAGES-i __kvm_tlb_flush_vmid_range() və __flush_s2_tlb_range_op()-a arqument kimi ötürür. MAX_TLBI_RANGE_PAGES-ə uyğun gələn SCALE#3 və NUM#31 __TLBI_RANGE_NUM() tərəfindən dəstəklənmir. Bu xüsusi halda SCALE#3/2/1/0 üçün __TLBI_RANGE_NUM()-dan -1 qaytarılıb və __flush_tlb_range_op()-dakı dövr tərəfindən rədd edilib, nəticədə @scale dəyişəni underflow edərək -9 olub və operand kimi 0xffff708000040000 təyin edilib. Operand səhvdir, çünki o, etibarsız @scale və @num-a uyğun olaraq __TLBI_VADDR_RANGE() tərəfindən müəyyən edilib. __TLBI_RANGE_NUM()-u SCALE#3 və NUM#31 kombinasiyasını dəstəkləmək üçün genişləndirməklə düzəldin. Dəyişikliklərlə makrodan [-1 30] əvəzinə [-1 31] qaytarıla bilər, yəni yuxarıdakı nümunədə 0x200000 səhifə üçün TLB-lər SCALE#3 və NUM#31 ilə bir dəfəyə təmizlənə bilər. TLBI_RANGE_MASK makrosu artıq heç kim tərəfindən istifadə olunmadığı üçün çıxarılıb. Şərhlər də müvafiq olaraq düzəldilib.

CiddilikYüksək
CVSS8.4
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc20 may 2024
İlk görülmə20 may 2024

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.6.29, 6.8.7 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.6 ≤ v < 6.6.29, 6.7 ≤ v < 6.8.7, 6.96.6.29, 6.8.7

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2024-35980 · Linux Kernel · Dark Radar