CVE-2026-23181
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: btrfs: sync read disk super and set block size İstifadəçi btrfs mount əməliyyatını yerinə yetirdikdə, blok cihazı düzgün təyin edilmir. İstifadəçi BLKBSZSET komandasını icra etməklə blok cihazının blok ölçüsünü 0x4000 olaraq təyin edir. Blok ölçüsü dəyişikliyi həmçinin mapping->flags dəyərini dəyişdirdiyi üçün bu, mapping_min_folio_order() hesablamasının nəticəsinə təsir göstərir. Aşağıdakı iki ssenarini təhlil edək: Ssenari 1: BLKBSZSET komandası icra edilmədən blok ölçüsü 0x1000 olur və mapping_min_folio_order() 0 qaytarır; Ssenari 2: BLKBSZSET komandası icra edildikdən sonra blok ölçüsü 0x4000 olur və mapping_min_folio_order() 2 qaytarır. do_read_cache_folio() funksiyası BLKBSZSET komandası icra edilməzdən əvvəl bir folio ayırır. Bunun nəticəsində ayrılmış folionun order dəyəri 0 olur. Daha sonra, BLKBSZSET icra edildikdən sonra blok ölçüsü 0x4000-ə artır və mapping_min_folio_order() hesablamasının nəticəsi 2 olur. Bu, iki arzuolunmaz nəticəyə səbəb olur: 1. filemap_add_folio() funksiyası VM_BUG_ON_FOLIO(folio_order(folio) < mapping_min_folio_order(mapping)) assertion-u tetikləyir. 2. syzbot hesabatı [1], bufer başlığının ayrılması zamanı yaranan xəta səbəbindən create_empty_buffers() funksiyasında null pointer dereference hadisəsini göstərir. Folio ayrılmasından əvvəl və sonra blok ölçüsündə və ya mapping flag-lərində uyğunsuzluqların qarşısını almaq üçün BLKBSZSET komandası ilə read cache page arasında inode əsasında sinxronizasiya qurulmalıdır. [1] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] RIP: 0010:create_empty_buffers+0x4d/0x480 fs/buffer.c:1694 Call Trace: folio_create_buffers+0x109/0x150 fs/buffer.c:1802 block_read_full_folio+0x14c/0x850 fs/buffer.c:2403 filemap_read_folio+0xc8/0x2a0 mm/filemap.c:2496 do_read_cache_folio+0x266/0x5c0 mm/filemap.c:4096 do_read_cache_page mm/filemap.c:4162 [inline] read_cache_page_gfp+0x29/0x120 mm/filemap.c:4195 btrfs_read_disk_super+0x192/0x500 fs/btrfs/volumes.c:1367
Necə düzəltmək olar
- Linux Linuxccb3c75d57039adb3170ae54a0d470e359705984, 3f29d661e5686f3aa14e6f11537ff5c49846f2e2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 3c20917120ce61f2a123ca0810293872f4c6b5a4 ≤ v < ccb3c75d57039adb3170ae54a0d470e359705984, 3c20917120ce61f2a123ca0810293872f4c6b5a4 ≤ v < 3f29d661e5686f3aa14e6f11537ff5c49846f2e2, 6.15 | ccb3c75d57039adb3170ae54a0d470e359705984, 3f29d661e5686f3aa14e6f11537ff5c49846f2e2 |
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.