CVE-2026-46031

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: net: ks8851: IRQ handler ətrafında BH-lərin deaktiv edilməsi bərpa edildi Əgər drayver ks8851_irq() funksiyasını icra edirsə VƏ bir TX paketi göndərilibsə, drayver netif_wake_queue() vasitəsilə TX növbəsini aktivləşdirir ki, bu da həmin cihaz üçün paketləri növbəyə düzmək məqsədilə TX softirq-ni planlaşdırır. Əgər CONFIG_PREEMPT_RT=y təyin edilibsə VƏ MAC tərəfindən bir paket də qəbul edilibsə, ks8851_rx_pkts() qəbul edilmiş paketlər üçün SKB-ləri ayırmaq üçün netdev_alloc_skb_ip_align() funksiyasını çağırır. Əgər netdev_alloc_skb_ip_align() BH aktiv olduqda çağırılarsa, netdev_alloc_skb_ip_align()-in sonunda yerləşən local_bh_enable() gözləyən softirq emalını tetikləyəcək və bu, nəticədə .xmit callback funksiyası olan ks8851_start_xmit_par()-ı çağıra bilər. ks8851_start_xmit_par() funksiyası struct ks8851_net_par .lock spinlock-unu kilidləməyə çalışacaq, lakin bu kilid artıq ks8851_start_xmit_par()-ın çağırıldığı ks8851_irq() tərəfindən kilidlənmişdir. Bu, kernel tərəfindən bildirilen və aşağıda siyahıya alınmış izi (trace) daxil olmaqla, deadlock-a (ölü kilidlənməyə) səbəb olur. Əgər CONFIG_PREEMPT_RT təyin edilməyibsə, onda 0913ec336a6c0 ("net: ks8851: Fix deadlock with the SPI chip variant") commit-indən etibarən, RX FIFO-da qəbul edilmiş paket olmadan da deadlock baş verə bilər. Gözləyən softirq-lər ks8851_irq() daxilindəki spin_unlock_bh(&ks->statelock) funksiyasından geri dönüş zamanı emal olunacaq və bu da eyni şəkildə deadlock-u tetikləyəcək. Problem, IRQ handler daxil olmaqla kritik bölmələr ətrafında BH-ləri deaktiv etməklə həll edilir və beləliklə, bu kritik bölmələr zamanı net_tx_action() softirq-nin tetiklənməsinin qarşısı alınır. net_tx_action() softirq-si BH-lər yenidən aktiv edildikdə və IRQ handler-in sonunda bütün digər IRQ handler hərəkətləri tamamlandıqdan sonra tetiklenir. __schedule from schedule_rtlock+0x1c/0x34 schedule_rtlock from rtlock_slowlock_locked+0x548/0x904 rtlock_slowlock_locked from rt_spin_lock+0x60/0x9c rt_spin_lock from ks8851_start_xmit_par+0x74/0x1a8 ks8851_start_xmit_par from netdev_start_xmit+0x20/0x44 netdev_start_xmit from dev_hard_start_xmit+0xd0/0x188 dev_hard_start_xmit from sch_direct_xmit+0xb8/0x25c sch_direct_xmit from __qdisc_run+0x1f8/0x4ec __qdisc_run from qdisc_run+0x1c/0x28 qdisc_run from net_tx_action+0x1f0/0x268 net_tx_action from handle_softirqs+0x1a4/0x270 handle_softirqs from __local_bh_enable_ip+0xcc/0xe0 __local_bh_enable_ip from __alloc_skb+0xd8/0x128 __alloc_skb from __netdev_alloc_skb+0x3c/0x19c __netdev_alloc_skb from ks8851_irq+0x388/0x4d4 ks8851_irq from irq_thread_fn+0x24/0x64 irq_thread_fn from irq_thread+0x178/0x28c irq_thread from kthread+0x12c/0x138 kthread from ret_from_fork+0x14/0x28

CiddilikYüksək
CVSS7.5
İstismar ehtimalı31. faiz dərəcəsi0,4%
MəhsulLinux Kernel
Dərc27 may 2026
İlk görülmə27 may 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.1.175, 6.6.140, 6.9, 6.12.86, 6.18.27, 7.0.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.1.91 ≤ v < 6.1.175, 6.6.31 ≤ v < 6.6.140, 6.8.10 ≤ v < 6.9, 6.9.1 ≤ v < 6.12.86, 6.13 ≤ v < 6.18.27, 6.19 ≤ v < 7.0.4, 6.96.1.175, 6.6.140, 6.9, 6.12.86, 6.18.27, 7.0.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.

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-46031 · Linux Kernel · Dark Radar