CVE-2023-54002
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: dengeleme başlatılırken exclop koşulunun doğrulaması düzeltildi Özel durum olarak dengeleme (balance), duraklatılmış dengeleme ve cihaz ekleme işlemleriyle uyumludur; bu da bazı durumları karmaşıklaştırmaktadır. Duraklatılmış dengelemeden başlarken geçerli durumların doğrulanması iki ek durumu daha dikkate almalıdır; bu kombinasyonlar, dengelemeyi ve cihaz eklemeyi başlatmak için yarışan birden fazla iş parçacığı olduğunda ortaya çıkabilir. Komutlar komut satırından başlatıldığında bu durum tipik olarak gerçekleşmez. Senaryo 1: exclusive_operation durumu == BTRFS_EXCLOP_NONE iken. Aynı bağlama noktasına eşzamanlı olarak birden fazla cihaz eklendiğinde ve btrfs_exclop_finish işlemi btrfs_exclop_balance içindeki doğrulamadan önce tamamlandığında, exclusive_operation değeri BTRFS_EXCLOP_NONE durumuna değişecek ve bu da şu doğrulamanın başarısız olmasına yol açacaktır: fs_info->exclusive_operation == BTRFS_EXCLOP_BALANCE || fs_info->exclusive_operation == BTRFS_EXCLOP_DEV_ADD, fs/btrfs/ioctl.c:456 içinde Çağrı İzlemi (Call Trace): <TASK> btrfs_exclop_balance+0x13c/0x310 ? memdup_user+0xab/0xc0 ? PTR_ERR+0x17/0x20 btrfs_ioctl_add_dev+0x2ee/0x320 btrfs_ioctl+0x9d5/0x10d0 ? btrfs_ioctl_encoded_write+0xb80/0xb80 __x64_sys_ioctl+0x197/0x210 do_syscall_64+0x3c/0xb0 entry_SYSCALL_64_after_hwframe+0x63/0xcd Senaryo 2: exclusive_operation durumu == BTRFS_EXCLOP_BALANCE_PAUSED iken. Aynı bağlama noktasına eşzamanlı olarak birden fazla cihaz eklendiğinde ve btrfs_exclop_balance işlemi, diğer iş parçacığının btrfs_exclop_balance içindeki doğrulamayı yürütmesinden önce tamamlandığında, exclusive_operation değeri BTRFS_EXCLOP_BALANCE_PAUSED durumuna değişecek ve bu da şu doğrulamanın başarısız olmasına yol açacaktır: fs_info->exclusive_operation == BTRFS_EXCLOP_BALANCE || fs_info->exclusive_operation == BTRFS_EXCLOP_DEV_ADD || fs_info->exclusive_operation == BTRFS_EXCLOP_NONE, fs/btrfs/ioctl.c:458 içinde Çağrı İzlemi (Call Trace): <TASK> btrfs_exclop_balance+0x240/0x410 ? memdup_user+0xab/0xc0 ? PTR_ERR+0x17/0x20 btrfs_ioctl_add_dev+0x2ee/0x320 btrfs_ioctl+0x9d5/0x10d0 ? btrfs_ioctl_encoded_write+0xb80/0xb80 __x64_sys_ioctl+0x197/0x210 do_syscall_64+0x3c/0xb0 entry_SYSCALL_64_after_hwframe+0x63/0xcd Başarısız olan doğrulamanın bir örneği aşağıdadır; bu örnek, duraklatılmış dengelemenin de kontrol edilmesi gerektiğini göstermektedir. root@syzkaller:/home/xsk# ./repro Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 Failed to add device /dev/vda, errno 14 [ 416.611428][ T7970] BTRFS info (device loop0): fs_info exclusive_operation: 0 Failed to add device /dev/vda, errno 14 [ 416.613973][ T7971] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.615456][ T7972] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.617528][ T7973] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.618359][ T7974] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.622589][ T7975] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.624034][ T7976] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.626420][ T7977] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.627643][ T7978] BTRFS info (device loop0): fs_info exclusive_operation: 3 Failed to add device /dev/vda, errno 14 [ 416.629006][ T7979] BTRFS info (device loop0): fs_info exclusive_operation: 3 [ 416.630298][ T7980] BTRFS info (device loop0): fs_info exclusive_operation: 3 Fai ---kesildi---
Nasıl düzeltilir
- Linux Linux17eaeee4c5f24946aad0298d51f32981c3161d13, 7877dc1136ada770622d22041be306539902951b, 6062e9e335a3bf409b5118bfe4cc10aff4b6adb1, ac868bc9d136cde6e3eb5de77019a63d57a540ff ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | a174c0a2e857081195db6888323802f0fae793ef ≤ v < 17eaeee4c5f24946aad0298d51f32981c3161d13, a174c0a2e857081195db6888323802f0fae793ef ≤ v < 7877dc1136ada770622d22041be306539902951b, a174c0a2e857081195db6888323802f0fae793ef ≤ v < 6062e9e335a3bf409b5118bfe4cc10aff4b6adb1, a174c0a2e857081195db6888323802f0fae793ef ≤ v < ac868bc9d136cde6e3eb5de77019a63d57a540ff, 5.17 | 17eaeee4c5f24946aad0298d51f32981c3161d13, 7877dc1136ada770622d22041be306539902951b, 6062e9e335a3bf409b5118bfe4cc10aff4b6adb1, ac868bc9d136cde6e3eb5de77019a63d57a540ff |
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.