CVE-2025-39748
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: bpf: JSET sonrası tnum daraltılırken aralıkları unut Syzbot, aşağıdaki BPF programında bir aralık değişmezliği ihlali nedeniyle bir çekirdek uyarısı bildirdi. 0: call bpf_get_netns_cookie 1: if r0 == 0 goto <exit> 2: if r0 & Oxffffffff goto <exit> Sorun, her iki atlamadan da geçilen yoldadır. Bu yol çalışma zamanında ulaşılamaz durumdadır: insn 1'den sonra r0 != 0 olduğunu biliriz, ancak jset üzerindeki işaret genişletmesiyle insn 2'den yalnızca r0 == 0 ise geçerdik. Ne yazık ki is_branch_taken() bunu şu anda çözemiyor, bu nedenle doğrulayıcı tüm dalları dolaşır. Doğrulayıcı daha sonra ikinci koşulu kullanarak kayıt sınırlarını daraltır ve bu ulaşılamaz yolda tutarsız sınırlarla sonuçlanırız: 1: if r0 == 0 goto <exit> r0: u64=[0x1, 0xffffffffffffffff] var_off=(0, 0xffffffffffffffff) 2: if r0 & 0xffffffff goto <exit> r0 before reg_bounds_sync: u64=[0x1, 0xffffffffffffffff] var_off=(0, 0) r0 after reg_bounds_sync: u64=[0x1, 0] var_off=(0, 0) JSET için aralık daraltmasını tüm durumları kapsayacak şekilde iyileştirmek zordur. Ayrıca LLVM bu talimatları üretmediğinden birçok kullanıcının JSET'e güvenmesini beklemiyoruz. Bu nedenle, JSET'ler için aralık daraltmasını iyileştirmek yerine Eduard, bir JSET sonrası tnum'ları daraltırken aralıkları unutmamızı önerdi. Bu yama söz konusu yaklaşımı uygular.
Nasıl düzeltilir
- linux linux_kernel6.12.43, 6.15.11, 6.16.2 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 | v < 6.12.43, 6.13 ≤ v < 6.15.11, 6.16 ≤ v < 6.16.2 | 6.12.43, 6.15.11, 6.16.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.