CVE-2026-45985

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ext4: I/O göndərmədən əvvəl bölmə zamanı EXT4_GET_BLOCKS_CONVERT təyin etməyin dioread_nolock aktiv olduqda, within-EOF DIO və writeback zamanı bloklar ayrılarkən, mövcud böyük yazılmamış extent-i bölmək üçün EXT4_GET_BLOCKS_PRE_IO təyin edilirdi. Lakin, ext4_split_convert_extents() çağırılanda EXT4_GET_BLOCKS_CONVERT təyin olunurdu ki, bu da potensial olaraq köhnəlmiş məlumat (stale data) problemlərinə səbəb ola bilərdi. Tutaq ki, bizdə yazılmamış bir extent var və sonra DIO onun ikinci yarısını yazır. [UUUUUUUUUUUUUUUU] on-disk extent U: yazılmamış extent [UUUUUUUUUUUUUUUU] extent status tree |<- ->| ----> dio bu diapazonu yazır İlk növbədə, ext4_iomap_alloc() funksiyası EXT4_GET_BLOCKS_PRE_IO, EXT4_GET_BLOCKS_UNWRIT_EXT və EXT4_GET_BLOCKS_CREATE bayraqları təyin edilmiş halda ext4_map_blocks()-i çağırır. ext4_map_blocks() həmin extent-i tapır və EXT4_GET_BLOCKS_CONVERT ilə yuxarıdakı bayraqlar təyin edilmiş halda ext4_split_convert_extents()-i çağırır. Sonra, ext4_split_convert_extents() funksiyası EXT4_EXT_MAY_ZEROOUT, EXT4_EXT_MARK_UNWRIT2 və EXT4_EXT_DATA_VALID2 bayraqları təyin edilmiş halda ext4_split_extent()-i çağırır və o da ikinci yarını EXT4_EXT_DATA_VALID2, EXT4_EXT_MARK_UNWRIT1, EXT4_EXT_MAY_ZEROOUT və EXT4_EXT_MARK_UNWRIT2 bayraqları ilə bölmək üçün ext4_split_extent_at()-i çağırır. Lakin, müvəqqəti -ENOSPC çatışmazlığı səbəbindən ext4_split_extent_at() extent-i daxil edə bilmir. O, birinci yarını sıfırlayır, lakin EXT4_EXT_DATA_VALID2 bayrağı təyin edildiyi üçün bütün on-disk extent-ini yazılmış kimi çevirir, amma extent status tree-də ikinci yarını yazılmamış kimi saxlayır. [0000000000SSSSSS] data S: köhnəlmiş məlumat, 0: sıfırlanmış [WWWWWWWWWWWWWWWW] on-disk extent W: yazılmış extent [WWWWWWWWWWUUUUUU] extent status tree Nəticə etibarilə, əgər DIO məlumatı diskə yaza bilməsə, keşlənmiş extent girişi silindikdən sonra ikinci yarıdakı köhnəlmiş məlumatlar üzə çıxacaqdır. Bu problem, I/O göndərməzdən əvvəl yazılmamış extent bölünərkən EXT4_GET_BLOCKS_CONVERT ötürülməməsi ilə həll edilmişdir; həmçinin bu hal üçün ext4_split_convert_extents() funksiyasının bütün extent diapazonunu sıfırlaması və ardıcıllığı təmin etmək üçün extent status tree-də extent-i qeyd etməsi təmin edilmişdir.

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

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel3.15 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.6.130, 6.7 ≤ v < 6.12.77, 6.13 ≤ v < 6.18.17, 6.19 ≤ v < 6.19.45.10.253, 5.15.203, 6.6.130, 6.12.77, 6.18.17, 6.19.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-45985 · Linux Kernel · Dark Radar