CVE-2026-98134
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: bpf: check_cond_jmp_op(): kaydedicinin null olup olmadığının doğru şekilde çıkarılması Nicholas Carlini, verifier'ın bir işaretçinin null olmadığını yanlışlıkla çıkarabildiği bir hata bildirmiştir. Bu hata, iki işaretçi karşılaştırıldığında ve bunlardan biri PTR_MAYBE_NULL bayrağına sahip olmayan ancak çalışma zamanında NULL değerine izin veren bir türe sahip olduğunda meydana gelir. Örnek şöyledir: // `a`, PTR_TO_MEM | MEM_RDONLY | PTR_UNTRUSTED tipindedir // `a` çalışma zamanında 0'dır. // `b`, PTR_TO_MAP_VALUE | PTR_MAYBE_NULL tipindedir void *a = bpf_rdonly_cast(0, 0); int *b = bpf_map_lookup_elem(...); if (a == b) *b = 42; // verifier, null pointer dereference durumunu yakalamaz Bu durum, check_cond_jmp_op() fonksiyonundaki özel bir durumdan kaynaklanmaktadır; bu durum, `rA == rB` gibi karşılaştırmaları işlerken eğer rA veya rB null olamazsa, işaretçi türlerinden PTR_MAYBE_NULL bayraklarını kaldırmaya çalışır. Null olmama özelliği, rA veya rB'nin türünde PTR_MAYBE_NULL bayrağının bulunmamasına dayanarak türetilir. Ancak örnekte olduğu gibi PTR_TO_MEM gibi türler için bu yeterli değildir. Bu yama, type_may_be_null() çağrısını, PTR_MAYBE_NULL bayrağının yokluğunun gerçekten değerin çalışma zamanında NULL olamayacağı anlamına geldiği türlerin bir izin listesini içeren reg_not_null() ile değiştirir. Şu anda reg_not_null() içindeki liste, PTR_MAYBE_NULL'un uygulanabilir olduğu iki türü hariç tutmaktadır: PTR_TO_XDP_SOCK ve PTR_TO_BUF. Geriye dönük uyumluluğu korumak adına ve yalnızca aynı türdeki işaretçiler arasındaki karşılaştırmanın anlamlı olduğu varsayımıyla, bu commit reg_not_null() fonksiyonunu genişletmektedir. Böyle bir genişletme olmadan, örneğin verifier_jeq_infer_not_null/null_ptr_to_map_value başarısız olur. reg_not_null() daha da genişletilebilir, ancak bunun mevcut düzeltmenin kapsamı dışında olduğu düşünülmektedir. check_cond_jmp_op() içerisindeki açık base_type(...) != PTR_TO_BTF_ID kontrolleri reg_not_null()'a geçişle birlikte kaldırılabilir, ancak bu davranışsal bir değişikliktir çünkü özel durum, aynı zamanda is_trusted_reg() olan PTR_TO_BTF_ID için de eşleşmeye başlayacaktır. Davranışsal değişiklik bu commit'e dahil edilmemiştir.
Nasıl düzeltilir
- linux linux_kernel7.2.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 | 6.2 ≤ v < 7.2.7, 7.3 | 7.2.7 |
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.159.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.