CVE-2026-72108
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: dm thin metadata: commit uğursuz olduqda metadata snapshot ardıcıllığının düzəldilməsi __reserve_metadata_snap() və __release_metadata_snap() funksiyaları block_manager-in buferində superblock-un held_root hissəsini birbaşa dəyişdirir. Əgər növbəti metadata commit əməliyyatı uğursuz olarsa, held_root abort_transaction yolu ilə diskə yazılır ki, bu da metadata-nın qeyri-ardıcıl olmasına səbəb olur. Reproducer 1: __reserve_metadata_snap() 1. 2 MiB həcmində metadata cihazı yaradın və növbəti reserve_metadata_snap əməliyyatında metadata commit xətasını tetikləmək üçün 14-cü blokdan sonrakı bölgəni əlçatmaz edin. 14-cü blok indeks bloku üçün kölgə təyinatı (shadow destination) olacaqdır. dmsetup create tmeta --table "0 112 linear /dev/sdc 0 112 3984 error" 2. 16 MiB həcmində thin-pool yaradın. dmsetup create tdata --table "0 32768 zero" dd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1 dmsetup create tpool --table "0 32768 thin-pool /dev/mapper/tmeta \ /dev/mapper/tdata 128 0 1 skip_block_zeroing" 3. Metadata commit xətasını və tranzaksiyanın ləğvini (abort) tetikləmək üçün metadata snapshot götürün. Lakin held_root diskə yazılır və metadata ardıcıllığını pozur. dmsetup message tpool 0 "reserve_metadata_snap" thin_check v1.2.2 nəticəsi: Bad reference count for metadata block 6. Expected 2, but space map contains 1. Bad reference count for metadata block 7. Expected 2, but space map contains 1. Bad reference count for metadata block 13. Expected 1, but space map contains 0. Reproducer 2: __release_metadata_snap() 1. 2 MiB həcmində metadata cihazı yaradın və növbəti release_metadata_snap əməliyyatında metadata commit xətasını tetikləmək üçün 16-cı blokdan sonrakı bölgəni əlçatmaz edin. 16-cı blok indeks bloku üçün kölgə təyinatı (shadow destination) olacaqdır. dmsetup create tmeta --table "0 128 linear /dev/sdc 0 128 3968 error" 2. 16 MiB həcmində thin-pool yaradın. dmsetup create tdata --table "0 32768 zero" dd if=/dev/zero of=/dev/mapper/tmeta bs=4k count=1 dmsetup create tpool --table "0 32768 thin-pool /dev/mapper/tmeta \ /dev/mapper/tdata 128 0 1 skip_block_zeroing" 3. Metadata commit xətasını və tranzaksiyanın ləğvini tetikləmək üçün metadata snapshot-u rezerv edin, sonra isə azad edin. held_root diskdəki superblock-dan silinir və bu, metadata-nın qeyri-ardıcıllığına səbəb olur. dmsetup message tpool 0 "reserve_metadata_snap" dmsetup message tpool 0 "release_metadata_snap" thin_check v1.2.2 nəticəsi: Bad reference count for metadata block 6. Expected 1, but space map contains 2. Bad reference count for metadata block 7. Expected 1, but space map contains 2. 1 metadata blocks have leaked. Həlli: held_root yeniləməsi commit vaxtına qədər təxirə salınır. Əlavə olaraq, lazımsız işlərin qarşısını almaq üçün __reserve_metadata_snap funksiyasındakı mövcud snapshot yoxlaması kölgə (shadow) əməliyyatından əvvələ keçirilir. __release_metadata_snap funksiyasında, qismən uğursuzluq zamanı köhnəlmiş istinad qalmaq əvəzinə blokların sızmasının (leak) qarşısını almaq üçün btree silinməsindən əvvəl pmd->held_root təmizlənir və refcount azaldılmazdan əvvəl snapshot bloku kiliddən açılır.
Necə düzəltmək olar
- Linux Linux4af993468193cf4cd32ba5748786e7801945f7d2, abf2fae92cbe68945028987d498cc72f8f0e23a8, 5efb1a7734ed4035fa4fdc3716bdb84621f27cf6, 3dc9ae1029320d77472c44965e572f176949cd63, b5f9a31c51cbb374a1713c3494f8660ab070f035, 7f76245960a332f39b08cc556e675d1765dc5bbb, 9f1a0d27586ceab055e6b050e3731ce3c6b2c4f0, 5bcd4d3058ebaf46ad2e163829d87dd4870c7a45 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 4af993468193cf4cd32ba5748786e7801945f7d2, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < abf2fae92cbe68945028987d498cc72f8f0e23a8, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 5efb1a7734ed4035fa4fdc3716bdb84621f27cf6, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 3dc9ae1029320d77472c44965e572f176949cd63, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < b5f9a31c51cbb374a1713c3494f8660ab070f035, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 7f76245960a332f39b08cc556e675d1765dc5bbb, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 9f1a0d27586ceab055e6b050e3731ce3c6b2c4f0, 991d9fa02da0dd1f843dc011376965e0c8c6c9b5 ≤ v < 5bcd4d3058ebaf46ad2e163829d87dd4870c7a45, 3.2 | 4af993468193cf4cd32ba5748786e7801945f7d2, abf2fae92cbe68945028987d498cc72f8f0e23a8, 5efb1a7734ed4035fa4fdc3716bdb84621f27cf6, 3dc9ae1029320d77472c44965e572f176949cd63, b5f9a31c51cbb374a1713c3494f8660ab070f035, 7f76245960a332f39b08cc556e675d1765dc5bbb, 9f1a0d27586ceab055e6b050e3731ce3c6b2c4f0, 5bcd4d3058ebaf46ad2e163829d87dd4870c7a45 |
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.