CVE-2026-93048
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: mtd: part: mtd_add_partition() fonksiyonunda MTDPART_OFS_RETAIN değerinin reddedilmesi mtd_add_partition(), özel ofset değeri olan MTDPART_OFS_RETAIN (-3) değerini reddetmemektedir; bu durum, NAND aygıtlarında BLKPG ioctl üzerinden çağrıldığında add_mtd_device() fonksiyonunda bir WARN_ON oluşmasına yol açmaktadır. RETAIN değeri, cur_offset değişkeninin önceki bölümün sonu olmasına bağlıdır ancak dinamik bölüm yolunda cur_offset, ofset argümanının kendisine eşittir ve bu da tanımsız davranışa neden olur. 5daa7b21496a numaralı commit ("mtd: prepare partition add and del functions for ioctl requests"), mtd_add_partition() fonksiyonunu tanıtmış ve bu özel ofsetlerin önceki bölümün sonunu takip eden cur_offset değerine dayanması nedeniyle MTDPART_OFS_APPEND (-1) ve MTDPART_OFS_NXTBLK (-2) değerlerini doğru şekilde reddetmiştir. Ancak daha sonra 1a31368bf92e numaralı commit ("mtd: add a flags for partitions which should just leave smth. after them"), statik bölüm tablosu yolu için MTDPART_OFS_RETAIN (-3) değerini eklemiş fakat mtd_add_partition() fonksiyonunu bu değeri de reddedecek şekilde güncellememiştir. BLKPG aracılığıyla offset=-3 iletildiğinde, allocate_partition() içerisindeki RETAIN boyut hesaplamasında alt taşma (underflow) meydana gelir (parent_size - 0xFFFFFFFFFFFFFFFD = parent_size + 3). Eğer alt taşma sonucu yeterli alan bırakmıyor gibi görünürse, allocate_partition() goto aracılığıyla out_register kısmına atlar ve erasesize başlatmasını atlar. Bu durum erasesize=0 sonucunu doğurur ve add_mtd_device() fonksiyonunda şunları tetikler: WARN_ON((!mtd->erasesize || !master->_erase) && !(mtd->flags & MTD_NO_ERASE)) Eğer alt taşma sonucu yeterli alan bırakıyor gibi görünürse, hatalı bir bölüm boyutu hesaplanır ancak "erişim dışı" tutarlılık kontrolü geçersiz ofseti yakalar ve hata döndürmek yerine devre dışı bırakılmış boş bir bölüm (offset=0, size=0) oluşturur. Bu sorun, APPEND ve NXTBLK işlemlerinin mevcut işleyişiyle tutarlı olacak şekilde, MTDPART_OFS_RETAIN değerinin mtd_add_partition() içerisindeki ret listesine eklenmesiyle düzeltilmiştir.
Nasıl düzeltilir
- Linux Linux701c3ae7273e1adc20db5d97c42e0139b479f16b, 6aaab2ace3f7b55733d904e5549acf8405f03642, 181c1bff940e7d3e34ca485d37e3cdbfe409203c, a536eb57be58442b19398b2783071007ecfb1735, e204e5c49a012f99638633fdbd773e3c86260053, 398aca2f90122d5abbabff1079deaeb885fe9e40, c645f6dd1af2ecc70fd3578e141f2f71fa9e4eff, b759d5bb6265419344ee9729fd0dc07ad85719d8 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < 701c3ae7273e1adc20db5d97c42e0139b479f16b, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < 6aaab2ace3f7b55733d904e5549acf8405f03642, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < 181c1bff940e7d3e34ca485d37e3cdbfe409203c, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < a536eb57be58442b19398b2783071007ecfb1735, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < e204e5c49a012f99638633fdbd773e3c86260053, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < 398aca2f90122d5abbabff1079deaeb885fe9e40, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < c645f6dd1af2ecc70fd3578e141f2f71fa9e4eff, 1a31368bf92ef2a7da3ba379672c405bd2751df9 ≤ v < b759d5bb6265419344ee9729fd0dc07ad85719d8, 3.2 | 701c3ae7273e1adc20db5d97c42e0139b479f16b, 6aaab2ace3f7b55733d904e5549acf8405f03642, 181c1bff940e7d3e34ca485d37e3cdbfe409203c, a536eb57be58442b19398b2783071007ecfb1735, e204e5c49a012f99638633fdbd773e3c86260053, 398aca2f90122d5abbabff1079deaeb885fe9e40, c645f6dd1af2ecc70fd3578e141f2f71fa9e4eff, b759d5bb6265419344ee9729fd0dc07ad85719d8 |
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.