CVE-2026-98050

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: mlxsw: spectrum_ptp: GC iş növbəsi kontekstindən napi_gro_receive() çağırışını düzəltmək Hazırda mlxsw_sp1_ptp_ht_gc_collect() funksiyası NAPI sorğu (poll) konteksti əvəzinə PTP zibil yığma (garbage-collection) iş növbəsindən icra olunur. SKB daşıyan uyğunlaşmamış bütün PTP girişləri üçün o, mlxsw_sp1_ptp_unmatched_finish() -> mlxsw_sp1_ptp_packet_finish() funksiyalarını çağırır. Daxil olan paketlər üçün bu, mlxsw_sp_rx_listener_no_mark_func() funksiyasını çağırır. Həmin funksiyanın sonu belədir: skb->protocol = eth_type_trans(skb, skb->dev); napi_gro_receive(mlxsw_skb_cb(skb)->rx_md_info.napi, skb); napi göstəricisi, tutulmuş paket NAPI kontekstində qəbul edildikdə SKB idarəetmə blokuna yerləşdirilmiş göstəricidir. Sonradan, GC uyğunlaşmamış girişi təmizlədikdə (MLXSW_SP1_PTP_HT_GC_TIMEOUT müddətindən sonra), napi_gro_receive() çağırışı NAPI instansiyasının GRO siyahısını dəyişdirir ki, bu da sorğunun eyni vaxtda başqa bir CPU-da icra olunduğu halda təhlükəlidir. mlxsw_sp1_ptp_ht_gc_collect() funksiyasında softirq emalının qarşısını almaq üçün local_bh_disable() çağırılır, lakin bu yalnız lokal CPU-ya şamil edilir. Əlavə olaraq, onun şərhi köhnəlmişdir. Orada qeyd olunub ki, mlxsw_sp1_ptp_unmatched_finish() funksiyası netif_receive_skb()-ni çağırır. İstinad edilən commit-dən bəri bu məlumat dəqiq olmayıb; bu yamama həmin şərhi yenidən dəqiq edir. mlxsw_pci_napi_devs_init() heç bir şərt olmadan NAPI RX net_device üzərində netif_threaded_enable() funksiyasını çağırır. GC ilə eyni vaxtda işləyə bilən NAPI instansiyasının sorğusu, fərqli CPU-da ola bilən müstəqil şəkildə planlaşdırılmış kthread kimi işləyir. local_bh_disable() çağırışı buna qarşı qoruma təmin etmir. Əgər tx-timestamp taym-autu uyğunlaşmamış giriş yaratdıqda (bu, ptp4l işə salındıqda və portun UNCALIBRATED/SLAVE vəziyyətinə çatması gözləniləndə asanlıqla təkrar istehsal edilə bilər) və sahib olduğu NAPI axını digər CPU-da sorğunun ortasında olduqda, hər iki tərəf GRO siyahısını eyni vaxtda dəyişdirir: [39.846] port 1 (swp1): MASTER to UNCALIBRATED on RS_SLAVE list_add corruption. next->prev should be prev (ffff8d620faf4138), but was ffff8d624150f700. (next=ffff8d620faf4138). kernel BUG at lib/list_debug.c:29! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 1 UID: 0 PID: 539 Comm: napi/mlxsw_rx-0 Not tainted 6.18.48 #1-NixOS PREEMPT(lazy) Hardware name: Mellanox Technologies Ltd. MSN2410/VMOD0001, BIOS 4.6.5 09/13/2018 RIP: 0010:__list_add_valid_or_report+0x79/0xb0 RSP: 0018:ffffcdf8c0f27c08 EFLAGS: 00010246 RAX: 0000000000000075 RBX: ffff8d624150fd00 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8d6315d1e540 RBP: ffff8d620faf4070 R08: 0000000000000000 R09: 00000000ffffdfff R10: ffffffffa5c60fe0 R11: ffffcdf8c0f27ab8 R12: 0000000000000003 R13: 000000000000003d R14: 00000000000001bc R15: 0000000000000001 FS: 0000000000000000(0000) GS:ffff8d636f63f000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000562689a60c24 CR3: 000000015f224004 CR4: 00000000001726f0 Call Trace: <TASK> gro_receive_skb+0xee/0x230 mlxsw_sp1_ptp_got_packet+0x61/0x140 [mlxsw_spectrum] mlxsw_core_skb_receive+0xdf/0x1b0 [mlxsw_core] mlxsw_pci_napi_poll_cq_rx+0x780/0x9d0 [mlxsw_pci] __napi_poll+0x31/0x1e0 napi_threaded_poll_loop+0x16b/0x1c0 napi_threaded_poll+0x71/0xa0 kthread+0xfb/0x260 ret_from_fork+0x22d/0x260 ret_from_fork_asm+0x1a/0x30 </TASK> Kernel panic - not syncing: Fatal exception in interrupt Bu nüvə panikasına səbəb olan mexanizm 6.18.48 versiyası ilə mainline arasında dəyişdirilməyib. Bu yamama, PTP packet_finish() yolu üçün napi_gro_receive() əvəzinə netif_receive_skb() funksiyasını çağıran daxiletmə-çatdırılma (ingress-delivery) köməkçi funksiyası əlavə edir. netif_receive_skb(), napi_gro_receive()-dən fərqli olaraq, NAPI instansiyasının sorğu kontekstinin xaricindən çağırıla bilər ki, bu da həmin yolun çağırıldığı yerdə baş verə bilər. RX statistika uçotu və skb->dev təyinatı saxlanılır; yeganə dəyişiklik çatdırılma çağırışının özündədir.

CiddilikYüksək
CVSS7.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc25 sen 2026
İlk görülmə25 sen 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.18.53, 7.2.7 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.14 ≤ v < 6.18.53, 6.19 ≤ v < 7.2.7, 7.36.18.53, 7.2.7

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