CVE-2026-98647
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: bpf: btf_struct_walk() funksiyasında sıfıra bölmə xətası düzəldildi Giriş strukturu aşdıqda və sonuncu üzv çevik massiv olduqda, btf_struct_walk() (off - moff) % t->size ifadəsi ilə ofseti tək bir elementə endirir, lakin element tipinin ölçüsünün olduğunu heç vaxt yoxlamır. BTF boş struktur qəbul edir, buna görə də proqram BTF-indəki bu hissə: /* event boş ola bilər */ struct event { #ifdef HAVE_TIMESTAMP __u64 ts; #endif }; struct batch { int nr; struct event events[]; }; proqram yükləmə zamanı sıfıra bölmə əməliyyatı yerinə yetirir. Bura çatmaq üçün MEM_ALLOC olmayan bir PTR_TO_BTF_ID lazımdır, məsələn, sleepable proqramdan xəritədə saxlanılan lokal kptr-nin sadə oxunması. Oops: divide error: 0000 [#1] SMP KASAN PTI RIP: 0010:btf_struct_walk+0x53f/0x1570 Call Trace: <TASK> btf_struct_access+0x42a/0xcd0 check_ptr_to_btf_access+0x4dc/0x1160 check_mem_access+0x3a45/0x8740 check_load_mem+0x36a/0xd10 do_check_common+0x3ef0/0xb210 bpf_check+0x6d3b/0x8580 bpf_prog_load+0xf7c/0x2720 __sys_bpf+0xa83/0x3690 __x64_sys_bpf+0xc7/0x150 x64_sys_call+0x1f3f/0x27e0 do_syscall_64+0xe5/0x610 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK> Sıfır ölçülü element tipi rədd edilir. Eyni funksiyadakı sabit massiv yolu artıq eyni halda prosesi dayandırır: btf_struct_walk() ... /* boş massivi ötür */ if (moff == mtrue_end) continue; msize /= total_nelems;
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.