CVE-2026-45990

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: slub: krealloc()-da məlumat itkisi və bufer daşmasının düzəldilməsi 2cd8231796b5 ("mm/slub: allow to set node and align in k[v]realloc") commit-i obyekt kiçildildiyi zaman belə, əgər orijinal obyekt yeni hizalama (alignment) və ya NUMA node tələblərini ödəmirse, yenidən bölgünü (reallocation) məcburi etmək imkanını tətbiq etmişdir. Bu, yenidən bölgünün ehtiyat yolu (fallback path) hissəsində iki xətaya səbəb olmuşdur: 1. NUMA miqrasiyası zamanı məlumat itkisi: 'alloc_new'-ə keçid 'ks' və 'orig_size' dəyişənləri başladılmamışdan əvvəl baş verir. Nəticədə, 'alloc_new' blokundakı memcpy() funksiyası yeni bölgüyə 0 bayt kopyalayır. 2. Kiçiltmə zamanı bufer daşması: Yeni hizalamanı məcburi edərkən obyekti kiçiltdikdə, 'new_size' köhnə ölçüdən daha kiçik olur. Lakin memcpy() köhnə ölçüdən ('orig_size ?: ks') istifadə etdiyi üçün sərhədlərdən kənar yazma (out-of-bounds write) baş verir. Eyni bufer daşması xətası kvrealloc() ehtiyat yolunda da mövcuddur; burada köhnə bucket ölçüsü ksize(p), yeni ölçü ilə məhdudlaşdırılmadan yeni buferə kopyalanır. Problemi nümayiş etdirən sadə reproduser: // məsələn, lkdtm-ə KREALLOC_SHRINK_OVERFLOW kimi əlavə edin while (1) { void *p = kmalloc(128, GFP_KERNEL); p = krealloc_node_align(p, 64, 256, GFP_KERNEL, NUMA_NO_NODE); kfree(p); } problemi göstərir: ================================================================== BUG: KFENCE: out-of-bounds write in memcpy_orig+0x68/0x130 Out-of-bounds write at 0xffff8883ad757038 (120B right of kfence-#47): memcpy_orig+0x68/0x130 krealloc_node_align_noprof+0x1c8/0x340 lkdtm_KREALLOC_SHRINK_OVERFLOW+0x8c/0xc0 [lkdtm] lkdtm_do_action+0x3a/0x60 [lkdtm] ... kfence-#47: 0xffff8883ad756fc0-0xffff8883ad756fff, size=64, cache=kmalloc-64 allocated by task 316 on cpu 7 at 97.680481s (0.021813s ago): krealloc_node_align_noprof+0x19c/0x340 lkdtm_KREALLOC_SHRINK_OVERFLOW+0x8c/0xc0 [lkdtm] lkdtm_do_action+0x3a/0x60 [lkdtm] ... ================================================================== Həll yolu: Köhnə ölçünün hesablanmasını __do_krealloc() funksiyasının yuxarı hissəsinə daşımaq və bütün kopyalama uzunluqlarını yeni bölgü ölçüsü ilə məhdudlaşdırmaqdır.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc27 may 2026
İlk görülmə27 may 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.18.27, 7.0.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.18 ≤ v < 6.18.27, 6.19 ≤ v < 7.0.46.18.27, 7.0.4

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.