CVE-2026-64424
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: netpoll: söndürmə yolunda istifadədən sonra azad etmə xətası düzəldilib netpoll-da istifadədən sonra azad etmə xətası mövcuddur və bu, KASAN tərəfindən aydın şəkildə aşkar edilir. BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0x3b/0x80 Read of size 1 at addr ... by task kworker/9:1 Workqueue: events queue_process Call Trace: skb_dequeue+0x1e/0xb0 queue_process+0x2c/0x600 process_scheduled_works+0x4b6/0x850 worker_thread+0x414/0x5a0 Allocated by task 242: __netpoll_setup+0x201/0x4a0 netpoll_setup+0x249/0x550 enabled_store+0x32f/0x380 Freed by task 0: kfree+0x1b7/0x540 rcu_core+0x3f8/0x7a0 Problem gözləyən TX worker-in təmizləmə yolu ilə paralel işlədiyi zaman baş verir. netpoll söndürmə yolunda baş verənlər belədir: 1) __netpoll_cleanup() çağırılır 2) dev->npinfo NULL-a təyin edilir 3) rcu_cleanup_netpoll_info() ilə call_rcu() çağırılır 3.1) rcu_cleanup_netpoll_info() bütün worker-ləri cancel_delayed_work() ilə ləğv etməyə çalışır, lakin worker-in bitməsini gözləmir 4) və kfree(npinfo) çağırılır; 3.1) işi həqiqətən ləğv etmədiyi üçün — şərhdə deyildiyi kimi "biz softirq-də olduğumuz üçün burada cancel_delayed_work_sync çağıra bilmərik" — TX worker 4)-dən sonra işləyə bilər. Qısaca: queue_process() RCU oxuyucusu deyil, o, npinfo-ya work item vasitəsilə container_of() ilə çatır. Worker-in tamamilə dayandırılmasını təmin etmək və gələcək yenidən silahlanma cəhdlərinin qarşısını almaq üçün disable_delayed_work_sync() istifadə edin. npinfo NULL-a təyin edildikdən sonra göndərənlər çıxacaq və yeni iş növbəyə qoymayacaqlar. Disable bayrağı hər hansı davam edən yenidən silahlanma cəhdlərinin də səssizcə uğursuz olmasını təmin edir. Gələcəkdə biz təmizləməni npinfo->rcu rcu_head-ə ehtiyac olmadan burada inline yerinə yetirə bilərik, lakin bu, net-next materialıdır.
Necə düzəltmək olar
- linux linux_kernel6.12.96, 6.18.39, 7.1.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 3.6.1 ≤ v < 6.12.96, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.4, 3.6, 7.2 | 6.12.96, 6.18.39, 7.1.4 |
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.