CVE-2026-46169
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: hfsplus: katalog kayıt boyutu doğrulanarak başlatılmamış değer hatası düzeltildi Syzbot, hfsplus_strcasecmp() fonksiyonunda bir KMSAN başlatılmamış değer (uninit-value) sorunu bildirmiştir. Sorunun temel nedeni, hfs_brec_read() fonksiyonunun diskteki kayıt boyutunun okunan kayıt türü için beklenen boyutla eşleştiğini doğrulamamasıdır. Bozuk bir dosya sistemi bağlanırken, hfs_brec_read() beklenenden daha az veri okuyabilir. Örneğin, bir katalog iş parçacığı (catalog thread) kaydı okunurken hata ayıklama çıktısı şunu göstermiştir: HFSPLUS_BREC_READ: rec_len=520, fd->entrylength=26 HFSPLUS_BREC_READ: WARNING - entrylength (26) < rec_len (520) - PARTIAL READ! hfs_brec_read() yalnızca entrylength değerinin tampon boyutundan büyük olmadığını doğrular ancak beklenen değerden küçük olup olmadığını kontrol etmez. 520 baytlık bir yapıya başarıyla 26 bayt okur ve işlem başarılı olarak döner; bu durum 494 baytın başlatılmamış kalmasına neden olur. tmp.thread.nodeName içerisindeki bu başlatılmamış veriler daha sonra hfsplus_cat_build_key_uni() tarafından kopyalanır ve hfsplus_strcasecmp() tarafından kullanılır; başlatılmamış baytlar case_fold() içinde dizi indeksleri olarak kullanıldığında KMSAN uyarısını tetikler. Şu işlemleri gerçekleştiren hfsplus_brec_read_cat() sarmalayıcısı eklenerek sorun giderilmiştir: 1. Veriyi okumak için hfs_brec_read() çağrılır. 2. Kayıt boyutu, tür alanına göre doğrulanır: - Klasör ve dosya kayıtları için sabit boyut. - İş parçacığı kayıtları için değişken boyut (dize uzunluğuna bağlıdır). 3. Boyut beklenenle eşleşmiyorsa -EIO döndürülür. İş parçacığı kayıtları için, giriş yapısını sıfırlayarak başlatmayan çağrı noktalarında başlatılmamış verilerin okunmasını önlemek amacıyla nodeName.length okunmadan önce HFSPLUS_MIN_THREAD_SZ kontrolü yapılır. Ayrıca, doğrulamanın atlanması durumunda bile hiçbir başlatılmamış verinin kalmamasını sağlamak amacıyla savunmacı programlama yaklaşımıyla hfsplus_find_cat() içindeki tmp değişkeni başlatılmıştır.
Nasıl düzeltilir
- linux linux_kernel6.6.140, 6.12.88, 6.18.30, 7.0.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 | 2.6.12.1 ≤ v < 6.6.140, 6.7 ≤ v < 6.12.88, 6.13 ≤ v < 6.18.30, 6.19 ≤ v < 7.0.7, 2.6.12 | 6.6.140, 6.12.88, 6.18.30, 7.0.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.