CVE-2026-90269
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: bpf: Hata koruması gerektiren işaretçilerden load-acquire işlemini reddet BPF_LOAD_ACQ, normal bir BPF_LDX'in aksine doğrulayıcı tarafından BPF_PROBE_MEM yüklemesine dönüştürülmez; bu nedenle JIT, istisna tablosu girişi olmayan düz bir yükleme yayınlar ve meydana gelen bir hata yönetilmek yerine çekirdek paniğine (kernel panic) yol açar. BPF_LDX'in hata korumasının uygulandığı, yani bpf_convert_ctx_accesses() fonksiyonunun BPF_PROBE_MEM'e dönüştürdüğü kaynak işaretçi türlerini reddedin: yalın PTR_TO_BTF_ID, PTR_TO_BTF_ID | PTR_UNTRUSTED, PTR_TO_BTF_ID | MEM_ALLOC | PTR_UNTRUSTED ve PTR_TO_MEM | MEM_RDONLY | PTR_UNTRUSTED. Bu durum örneğin güvenilir bir task_struct üzerinden ->mm yüklenerek mm_struct için güvenilmeyen bir işaretçi elde edilmesiyle erişilebilirdir ve bir çekirdek iş parçacığı için bu değer NULL'dır: [...] SEC("tp_btf/sched_switch") int BPF_PROG(demo, bool preempt, struct task_struct *prev, struct task_struct *next) { struct mm_struct *mm = next->mm; /* untrusted */ out_ldx = (__u64)mm->pgd; /* BPF_LDX */ out_acq = load_acquire(&mm->pgd); /* BPF_LOAD_ACQ */ return 0; } [...] Her ikisi de aynı işaretçiyi çözümler ancak yalnızca BPF_LDX korunur (x86-64 JIT, sıçrama hedefleri programla ilgili olarak gösterilmiştir): [...] ; out_ldx = (__u64)mm->pgd; 17: movq $-10485760, %r10 1e: movq %rsi, %r11 21: addq $184, %r11 28: subq %r10, %r11 2b: movabsq $140737498841088, %r10 35: cmpq %r10, %r11 38: ja 0x3e <-- kernel addr? 3a: xorl %edi, %edi <-- no: dst = 0, skip the load 3c: jmp 0x45 3e: movq 184(%rsi), %rdi <-- yes: load + extable entry [...] ; load_acquire(&mm->pgd) 53: movq %rsi, %rdi 56: movq 184(%rdi), %rax <-- no check, no extable entry [...] bpf_insn_prepare_dump() bunu tekrar BPF_MEM'e dönüştürdüğünden, BPF_PROBE_MEM'in bir bpftool xlated dökümünde görünmediğine dikkat edin. PTR_TRUSTED işaretçisi kasıtlı olarak listede yer almamaktadır. Böyle bir yükleme de dönüştürülmez ancak işaretçinin canlı olduğu garanti edildiğinden buna gerek yoktur, dolayısıyla üzerindeki load-acquire işlemine izin verilmeye devam edilir. Atomik RMW ve store-release hata mesajlarının değişmemesi için kontrol BPF_LOAD_ACQ ile sınırlandırılmıştır; bu tür işaretçilere yapılan yazmalar (RMW / store-release) zaten başka yerlerde reddedildiğinden, yalnızca load-acquire işlemi buna ihtiyaç duymaktadır.
Nasıl düzeltilir
- Linux Linuxc4c8de3bf48d3756ab0f910fe5cc4937d70efdcd, 5f8ade6e9b7931fc9697394f1b2c4ae833f5ac18, 7db0a00445f1a40bacfe9b747405c11cb5f10fc9 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 880442305a3908589bf4d6fc1d79edb577ee497c ≤ v < c4c8de3bf48d3756ab0f910fe5cc4937d70efdcd, 880442305a3908589bf4d6fc1d79edb577ee497c ≤ v < 5f8ade6e9b7931fc9697394f1b2c4ae833f5ac18, 880442305a3908589bf4d6fc1d79edb577ee497c ≤ v < 7db0a00445f1a40bacfe9b747405c11cb5f10fc9, 6.15 | c4c8de3bf48d3756ab0f910fe5cc4937d70efdcd, 5f8ade6e9b7931fc9697394f1b2c4ae833f5ac18, 7db0a00445f1a40bacfe9b747405c11cb5f10fc9 |
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.