CVE-2024-50217
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: __btrfs_free_extra_devids() fonksiyonundaki blok aygıt dosyası serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi İki imajın (aynı fsid ve iki farklı dev_uuid değerine sahip olanlar) belirli bir yürütme sırasıyla btrfs olarak bağlanması, __btrfs_free_extra_devids() içerisindeki 'device->bdev_file' değişkeni için bir UAF tetikleyebilir. Detaylar şu şekildedir: 1. image_1 loop0'a, image_2 loop1'e eklenir ve ioctl(BTRFS_IOC_SCAN_DEV) ile btrfs aygıtları taranır: / btrfs_device_1 → loop0 fs_device \ btrfs_device_2 → loop1 2. mount /dev/loop0 /mnt btrfs_open_devices btrfs_device_1->bdev_file = btrfs_get_bdev_and_sb(loop0) btrfs_device_2->bdev_file = btrfs_get_bdev_and_sb(loop1) btrfs_fill_super open_ctree fail: btrfs_close_devices // -ENOMEM btrfs_close_bdev(btrfs_device_1) fput(btrfs_device_1->bdev_file) // btrfs_device_1->bdev_file serbest bırakıldı btrfs_close_bdev(btrfs_device_2) fput(btrfs_device_2->bdev_file) 3. mount /dev/loop1 /mnt btrfs_open_devices btrfs_get_bdev_and_sb(&bdev_file) // EIO, btrfs_device_1->bdev_file atanmadı, // bu da serbest bırakılmış bir bellek alanına işaret eder btrfs_device_2->bdev_file = btrfs_get_bdev_and_sb(loop1) btrfs_fill_super open_ctree btrfs_free_extra_devids if (btrfs_device_1->bdev_file) fput(btrfs_device_1->bdev_file) // UAF ! Hata, btrfs_close_one_device() içerisinde btrfs_device kapatıldıktan sonra 'device->bdev_file' değerinin 'NULL' olarak ayarlanmasıyla düzeltilmiştir.
Nasıl düzeltilir
- linux linux_kernel6.11.7 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 4.8 ≤ v < 6.11.7, 6.12 | 6.11.7 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.