CVE-2026-89581

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: bpf, x86: per-CPU ünvanının genişləndirilmiş registra həll edilməsi düzəldildi per-CPU ünvan MOV əməliyyatının təyinat nöqtəsi ModRM.reg-də kodlaşdırılır və bu, REX.R tərəfindən genişləndirilir, lakin REX prefiksi REX.B-ni təyin edən add_1mod() ilə qurulur. REX.B ModRM.rm və SIB.base-i genişləndirir və bu təlimat yaddaşa bazasız disp32 kimi müraciət etdiyindən, həmin bit heç bir təsir göstərmir və yüksək registr biti sadəcə itirilir. Buna görə də hər bir is_ereg() təyinatı səhv registra yönəlir və aşağı üç biti eyni olan registri seçir: R5 -> RAX R7 -> RBP R8 -> RSI R9 -> RDI reg2hex-i 0 olan BPF_REG_5 ilə emissiya olunan 65 49 03 04 25 <off> add %gs:<off>,%rax per-CPU ofsetini R8 əvəzinə RAX-a əlavə edir. Təyinat nöqtəsi tənzimlənməmiş ünvanı saxlayır və RAX pozulur, beləliklə proqram heç vaxt per-CPU edilməmiş göstəricini dereference etməyə davam edir: BUG: unable to handle page fault for address: 0000607e386a8894 RIP: bpf_prog_707837aafd2aa9ae_update_percpu_data+0x93/0xc9 Call Trace: __bpf_prog_test_run_raw_tp+0x2dc/0x7d0 __flush_smp_call_function_queue+0x1e9/0xc80 Kernel panic - not syncing: Fatal exception in interrupt R5 dördü arasında ən yüngül olanıdır, müvəqqəti registrlə alias yaradır və yazma zamanı xəta verir. R7 RBP ilə alias yaradır və kadr göstəricisini (frame pointer) korlayar, R8 və R9 isə arqument registrləri ilə alias yaradır. Registrin REX.R vasitəsilə ötürülməsi üçün add_2mod()-dan istifadə edin; bu, add_2reg()-in onu ModRM.reg-ə yerləşdirmə qaydasına və emit_priv_frame_ptr()-in R9 ilə eyni təlimat üçün 0x4c-ni sabit kodlaşdırmasına uyğundur. Genişləndirilməmiş registrlər üçün kodlaşdırmalar dəyişməz qalır. Problem BPF_GCC CI (BPF_GCC ilə qurulan selftests) bərpa edilməyə çalışarkən üzə çıxmışdır. Bu, diqqətdən qaçmışdı, çünki clang hər bir per-CPU girişindən əvvəl ünvanı yenidən R1-ə yükləyir, buna görə də təyinat nöqtəsi heç vaxt genişləndirilmiş registr olmur. GCC eyni anda bir neçə per-CPU ünvanını aktiv saxlayır və test_progs-bpf_gcc, .percpu dəyişəninin ünvanının R5-ə düşdüyü global_percpu_data/init hissəsində kernel-i panic vəziyyətinə salır.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux
Dərc11 sen 2026
İlk görülmə11 sen 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linux638bc3aada8ecdece184d5c15b100d489c9cccd7, 6886642414f59f928728802dc2c972a9859e6310, 6a19b18d458881bf3269a357cc6dc6db5eef4369, 5bbbce02e500d47d8e259a45be5a7be9741d0533 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux7bdbf7446305cb65c510c16d57cde82bc76b234a ≤ v < 638bc3aada8ecdece184d5c15b100d489c9cccd7, 7bdbf7446305cb65c510c16d57cde82bc76b234a ≤ v < 6886642414f59f928728802dc2c972a9859e6310, 7bdbf7446305cb65c510c16d57cde82bc76b234a ≤ v < 6a19b18d458881bf3269a357cc6dc6db5eef4369, 7bdbf7446305cb65c510c16d57cde82bc76b234a ≤ v < 5bbbce02e500d47d8e259a45be5a7be9741d0533, 6.10638bc3aada8ecdece184d5c15b100d489c9cccd7, 6886642414f59f928728802dc2c972a9859e6310, 6a19b18d458881bf3269a357cc6dc6db5eef4369, 5bbbce02e500d47d8e259a45be5a7be9741d0533

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.

Intelligence 360 paketində

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.

CVE-2026-89581 · Linux · Dark Radar