CVE-2026-64320

Kritik

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: nvmet: Discovery Get Log Page-də autentifikasiyadan əvvəl heap-dən sərhəddən kənar oxuma xətası düzəldilib nvmet_execute_disc_get_log_page() yalnız host tərəfindən verilən Log Page Offset (lpo) dəyərinin dword düzülməsini yoxlayır. Sonra 64-bitlik offset discovery log səhifəsini saxlayan kiçik kzalloc buferinə əlavə olunur və nəticə birbaşa nvmet_copy_to_sgl()-ə ötürülür, hansı ki, mənbə tərəfdə heç bir sərhəd yoxlaması olmadan data_len baytı memcpy() ilə host-a köçürür: u64 offset = nvmet_get_log_page_offset(req->cmd); /* 64-bit host */ size_t data_len = nvmet_get_log_page_len(req->cmd); /* 32-bit host */ ... if (offset & 0x3) { ... } /* only check */ ... alloc_len = sizeof(*hdr) + entry_size * discovery_log_entries(req); buffer = kzalloc(alloc_len, GFP_KERNEL); ... status = nvmet_copy_to_sgl(req, 0, buffer + offset, data_len); Discovery nəzarətçisi autentifikasiya tələb etmir -- nvmet_host_allowed() discovery alt sistemi üçün qeyd-şərtsiz true qaytarır -- buna görə də çağırış nvmet hədəfinə çata bilən istənilən TCP/RDMA/FC qarşı tərəfi tərəfindən autentifikasiyadan əvvəl əlçatan olur. Təxminən 1 KiB ölçüsündə discovery log səhifəsi ilə offset == alloc_len-dən başlayaraq 4 KiB-ə qədər sorğu göndərən hücumçu növbəti slab səhifəsini oxuyur və onun məzmununu fabric üzərindən geri alır (standart nvmet-tcp loopback hədəfində aparılmış empirik sınaq bir Get Log Page cavabında 81 kanonik kernel göstəricisini sızdırıb). Offset-i xəritələnməmiş kernel yaddaşına yönəltmək kernel daxilindəki memcpy-də xətaya səbəb olur və hədəf host-u çökdürür (və ya panic_on_oops=1 olduqda panic yaradır). Hücumçu tərəfindən idarə olunan mənbə tərəf offset nümunəsi "nvmet_copy_to_sgl(req, 0, buffer + ATTACKER_OFFSET, ...)" bütün nvmet kod bazasında yalnız nvmet_execute_disc_get_log_page üçün unikaldır: admin-cmd.c-dəki bütün digər Get Log Page emal ediciləri ya lpo-nu nəzərə almır (və hər cavabı səssizcə offset 0-dan başladır), ya da sabit mənbə göstəricisi ilə lokal təyinat offsetini izləyir. Host tərəfindən verilən offset-i log səhifəsinin ölçüsünə qarşı yoxlayın, köçürmə uzunluğunu faktiki mövcud olan həcmlə məhdudlaşdırın və host ötürmə buferinin qalan hissəsini sıfırlarla doldurun. Sıfırlarla doldurma nvmet_execute_get_log_changed_ns()-dəki (admin-cmd.c) mövcud qısa cavab nümunəsinə uyğun gəlir və host log səhifəsində olandan daha çox bayt tələb etdikdə transport SGL məzmununun sızmasının qarşısını alır.

CiddilikKritik
CVSS9.1
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc25 iyl 2026
İlk görülmə25 iyl 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.12.96, 6.18.39, 7.1.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel4.8 ≤ v < 6.12.96, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.46.12.96, 6.18.39, 7.1.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.

CVE-2026-64320 · Linux Kernel · Dark Radar