CVE-2026-63825
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: gcov: eş zamanlı erişim çökmelerini düzeltmek için atomik sayaç güncellemeleri kullanın GCC'nin GCOV araçlandırması, bir optimizasyon olarak küresel dal isteme sayaçlarını döngü tümevarım değişkenleriyle birleştirebilir. inflate_fast() fonksiyonunda, iç kopyalama döngüleri; döngü taban adresini, başlangıç indeksini ve bitiş sınırını hesaplamak için GCOV sayaç değerinin birden fazla kez yüklenmesi şeklinde dönüştürülür. GCOV sayaçları küresel olduğundan (her CPU için ayrı değildir), farklı CPU'larda eş zamanlı yürütme, yüklemeler arasında sayacın değişmesine neden olur; bu da tutarsız değerlere ve sınırlar dışı bellek yazımlarına yol açar. Çökme, inflate_fast() birden fazla CPU üzerinde eş zamanlı olarak çalıştığında IPComp (IP Payload Compression) işleme sırasında ortaya çıkar: BUG: unable to handle page fault for address: ffffd0a3c0902ffa RIP: inflate_fast+1431 Call Trace: zlib_inflate __deflate_decompress crypto_comp_decompress ipcomp_decompress [xfrm_ipcomp] ipcomp_input [xfrm_ipcomp] xfrm_input Çökme noktasında derleyici, indeksli bir döngü için tabanı, başlangıcı ve sonu hesaplamak amacıyla aynı küresel GCOV sayacından (__gcov0.inflate_fast+216) üç yükleme oluşturmuştur. Başka bir CPU, yüklemeler arasında sayacı değiştirerek değerlerin tutarsız hale gelmesine neden olmuş ve yazma işlemi 65 KB'lık bir tamponun 3,4 MB ötesine geçmiştir. Üst düzey Makefile'da, bir deneme-derleme testi ile korunan küresel düzeydeki CFLAGS_GCOV kısmına -fprofile-update=prefer-atomic ekleyin. Test, tam KBUILD_CFLAGS kullanarak -fprofile-update=prefer-atomic ile ve bu olmadan minimal bir programı derler, ardından sonuçlanan nesne dosyalarındaki tanımlanmamış sembolleri karşılaştırır. Eğer prefer-atomic yeni tanımlanmamış referanslar getirirse (i386'da __atomic_fetch_add_8 veya outline-atomics kullanan arm64'te __aarch64_ldadd8_relax gibi), bayrak eklenmez; çünkü kernel libatomic ile bağlanmaz. GCC'nin 64-bit atomik sayaç güncellemelerini satır içi yaptığı mimarilerde (x86_64, s390, ...) test geçer ve bayrak etkinleştirilir; böylece derleyicinin sayaçları döngü tümevarım değişkenleriyle birleştirmesi engellenir ve gözlemlenen eş zamanlı erişim çökmesi düzeltilir. Bayrağın libatomic bağımlılıkları getireceği mimarilerde, bayrak sessizce atlanır ve davranış bu yamadan önceki durumdan daha kötü olmaz. CFLAGS_GCOV bloğunu orijinal konumundan (arch Makefile dahil edilmeden öncesinden), çekirdek KBUILD_CFLAGS atamalarından sonraya ancak scripts/Makefile.gcc-plugins dahil edilmesinden öncesine taşıyın. Bu yerleşim, deneme-derleme testinin mimariye özgü bayrakları (-m32, -march=, -mno-outline-atomics) görmesini sağlarken, eklenti paylaşılan nesnelerinin henüz mevcut olmadığı temiz kurulumlarda testi bozacak olan GCC eklenti bayraklarından (-fplugin=) kaçınır.
Nasıl düzeltilir
- Linux Linux76cb9fde95eba4bd8f06d142a8b8810bf2d09de4, b0f7bd5eeb903a0021a80e9d704814e2a9d3998c, 4575852c23a10abc7648d31e4c12cf79d7391637, 49d893b9cbcfc5802a32e53a64c6c6956670d65b, 5b959c1dbb4522b9e3ac4e26ad638b8784869841, 56cb9b7d96b28a1173a510ab25354b6599ad3a33 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < 76cb9fde95eba4bd8f06d142a8b8810bf2d09de4, 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < b0f7bd5eeb903a0021a80e9d704814e2a9d3998c, 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < 4575852c23a10abc7648d31e4c12cf79d7391637, 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < 49d893b9cbcfc5802a32e53a64c6c6956670d65b, 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < 5b959c1dbb4522b9e3ac4e26ad638b8784869841, 2521f2c228ad750701ba4702484e31d876dbc386 ≤ v < 56cb9b7d96b28a1173a510ab25354b6599ad3a33, 2.6.31 | 76cb9fde95eba4bd8f06d142a8b8810bf2d09de4, b0f7bd5eeb903a0021a80e9d704814e2a9d3998c, 4575852c23a10abc7648d31e4c12cf79d7391637, 49d893b9cbcfc5802a32e53a64c6c6956670d65b, 5b959c1dbb4522b9e3ac4e26ad638b8784869841, 56cb9b7d96b28a1173a510ab25354b6599ad3a33 |
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.