CVE-2026-98588
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: bpf, sockmap: sock_map_alloc fonksiyonunda max_entries > INT_MAX durumu reddedilir sock_map_alloc() yalnızca max_entries == 0 durumunu reddetmekte ve bunun dışındaki tüm u32 değerlerine izin vermektedir. Ardından sock_map_free(), sks[] dizisini imzalı bir int yineleyici ile taramaktadır: int i; for (i = 0; i < stab->map.max_entries; i++) struct sock **psk = &stab->sks[i]; Bir SOCKMAP, max_entries = 0xffffffff (UINT_MAX) ile oluşturulduğunda, yüksek belleğe sahip ana bilgisayarlarda 32 GiB'lık tahsis işlemi başarılı olabilir. Serbest bırakma sırasında sayaç 0x80000000 değerine ulaşır, INT_MIN değerine döner, movslq tarafından işaret genişletmesine uğrar ve stab->sks üzerinden yaklaşık 16 GiB'lık negatif bir ofsete dönüşerek tahsis edilen alanın çok altına işaret eder. Hatalı erişim, sock_map_free() içindeki bir xchg() yazma işlemidir. KASAN olmadan, aynı sınır dışı yazma işlemi eşlenmemiş bir vmalloc sayfasında hata verebilir veya söz konusu vmalloc adresi doluysa ilgisiz bir tahsisi bozabilir. CONFIG_KASAN_VMALLOC=y etkinleştirilmiş bir KASAN çekirdeğinde, bu adres için gölge kontrolü eşlenmemiş bir gölge sayfasına denk gelir ve önce oops hatası verir: BUG: unable to handle page fault for address: fffff521b59c5a00 RIP: 0010:kasan_check_range+0x107/0x190 Call Trace: sock_map_free+0x93/0x190 map_create+0x68d/0xb30 __sys_bpf+0x21e/0x2e70 Vmcore; stab->map.max_entries == 0xffffffff, stab->sks == 0xffffc911ace2d000 olduğunu ve hatalı adresin sks + (s64)INT_MIN * 8 şeklinde tam olarak 0xffffc90dace2d000 olduğunu doğrulamıştır. Bu tür bir harita yok edildiğinde, normal close()/bpf_map_free_deferred() yolu üzerinde de aynı hatalı yola ulaşılmaktadır. sock_map_alloc() daha önce tahsis boyutunu bpf_map_charge_init() aracılığıyla sınırlıyordu ancak rlimit tabanlı bellek muhasebesi kaldırıldığında bu sınır da kaldırıldı. sock_map_free() içindeki imzalı yineleyicinin taşmaya neden olacak bir değer görmemesi için oluşturma aşamasında max_entries > INT_MAX durumu reddedilmelidir. syzkaller tarafından tetiklenen açık, hem 6.6 tabanlı bir KASAN çekirdeğinde hem de upstream v7.3-rc2 çekirdeğinde yeniden üretilmiştir.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
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.