CVE-2026-31452
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: ext4: truncate inline ölçünü aşdıqda inline məlumatları extentlərə çevirsin truncate() faylın ölçüsünü inline tutumundan daha çox artırdıqda, faylları inline məlumat yaddaşından extent əsaslı yaddaşa çevirmək üçün ext4_setattr() funksiyasına yoxlama əlavə edilib. Bu, fayl sisteminin inline məlumat bayrağının təyin edildiyi, lakin fayl ölçüsünün inline olaraq saxlanıla bilən həddi aşdığı qeyri-stabil vəziyyətə düşməsinin qarşısını alır. Bu düzəliş olmadan, aşağıdakı ardıcıllıq nüvədə BUG_ON() xətasına səbəb olur: 1. Inline bayrağı təyin edilmiş və kiçik ölçülü inode ilə fayl sistemi mount edilir. 2. truncate(file, 50MB) - ölçü artırılır, lakin inline bayrağı təyin olunmuş halda qalır. 3. sendfile() məlumat yazmağa cəhd edir. 4. ext4_write_inline_data() funksiyasında BUG_ON(write_size > inline_capacity) xətası baş verir. Sistem çökməsi ona görə baş verir ki, ext4_write_inline_data() inline yaddaşın yazma əməliyyatını qarşılayacağını gözləyir, lakin faktiki inline tutumu (i_block üçün ~60 bayt + xattrs üçün ~96 bayt) fayl ölçüsündən və yazma sorğusundan qat-qat kiçikdir. Düzəliş, setattr vasitəsilə təyin edilən yeni ölçünün inode-un faktiki inline tutumunu (EXT4_I(inode)->i_inline_size) aşdığını yoxlayır və ölçü dəyişikliyini yerinə yetirməzdən əvvəl faylı extent əsaslı yaddaşa çevirir. Bu, truncate əməliyyatları zamanı inline məlumat bayrağının və fayl ölçüsünün ardıcıl qalmasını təmin etməklə problemin kök səbəbini həll edir.
Necə düzəltmək olar
- linux linux_kernel5.10.253, 5.15.203, 6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11 və ya daha yeni versiya
- git.kernel.org/stable/c/07c1a31af18290054da3d18221b8bf58983c5d3a
- git.kernel.org/stable/c/110d7ef602659ce4d7947c5480f7ca2779696aaf
- git.kernel.org/stable/c/699bac4d4c951974d55b045c983d1de777215949
- git.kernel.org/stable/c/7920dcc571cef3d8aa9ee109c136125d61d41669
- git.kernel.org/stable/c/93cb2d103e5c707de0f7ad58a39b7f0fddc27aa6
- git.kernel.org/stable/c/c047332be7195833a5c5126816c2502df8269fe4
- git.kernel.org/stable/c/ed9356a30e59c7cc3198e7fc46cfedf3767b9b17
- git.kernel.org/stable/c/f53a5d9f32924bc2a810d2df243b7714da58b636
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 3.8 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.131, 6.7 ≤ v < 6.12.80, 6.13 ≤ v < 6.18.21, 6.19 ≤ v < 6.19.11, 7.0 | 5.10.253, 5.15.203, 6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11 |
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.
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.