CVE-2026-13215
Açıklama
Zephyr ext2 dosya sistemi sürücüsü, bir dosya sistemini bağlarken disk üzerindeki superblock'ın s_log_block_size alanını doğrulamada başarısız olur. subsys/fs/ext2/ext2_impl.c içindeki ext2_verify_disk_superblock() fonksiyonu; sihirli sayıyı, revizyonu, inode boyutunu ve grup sayılarını kontrol eder ancak s_log_block_size için hiçbir sınır kontrolü yapmaz. Doğrulamanın başarılı olması durumunda, subsys/fs/ext2/ext2_ops.c saldırgan tarafından kontrol edilen bu uint32_t değerinden fs->block_size = 1024 << superblock.s_log_block_size işlemini hesaplar; böylece özel olarak hazırlanmış bir değer ya kaydırmayı taşır (tanımsız davranış) ya da CONFIG_EXT2_MAX_BLOCK_SIZE'dan çok daha büyük bir blok boyutu üretir. Bu blok boyutu daha sonra, boyutu CONFIG_EXT2_MAX_BLOCK_COUNT * CONFIG_EXT2_MAX_BLOCK_SIZE olan sabit statik __ext2_block_memory_buffer tamponundan CONFIG_EXT2_MAX_BLOCK_COUNT kadar blok ayırmak için ext2_init_blocks_slab() tarafından k_mem_slab_init()'e iletilir. k_mem_slab_init(), istenen blokların tampona sığıp sığmadığını doğrulamaz ve ext2 sarmalayıcısı döndürülen değeri göz ardı eder, bu nedenle slab statik tamponun sonunun ötesine yerleştirilir. Bağlama işlemi sırasında hemen her biri fs->block_size bayt olan blok grubu, bitmap ve inode blokları bu slab bloklarına okunur ve ilk blok okumasında komşu statik belleğe sınır dışı yazma (out-of-bounds write) gerçekleşir. Tüm yol yalnızca bağlanan imajdan okunan verilerle denetlenmektedir; bu durum, bunu bağlayan bir cihaza (örneğin çıkarılabilir bir SD kart veya depolama ortamı) özel olarak hazırlanmış bir ext2 imajı sunabilen herhangi bir saldırgan tarafından erişilebilir kılar. ext2 sürücüsü çekirdek modunda çalıştığı için, imaj baytlarının sağlanması hizmet reddinden potansiyel kod çalıştırmaya kadar değişen etkileri olan bir supervisor-mod bellek bozulması primitifi sağlar. Düzeltme, kaydırmayı taşıran (11'den büyük) veya CONFIG_EXT2_MAX_BLOCK_SIZE'ı aşan bir blok boyutu üreten s_log_block_size değerlerini reddeder, böylece blok slab'ı artık destekleyici tamponundan daha büyük şekilde başlatılamaz.
Nasıl düzeltilir
- zephyrproject zephyr4.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 3.5.0 ≤ v < 4.4.2 | 4.4.2 |
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.