CVE-2026-97595

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: mac802154: növbəyə alınmış RX freymləri vasitəsilə sdata-nın use-after-free xətasının düzəldilməsi RX softirq istehsalçısı olan ieee802154_subif_frame() funksiyası qəbul edilmiş beacon və MAC-komanda freymlərini local->rx_beacon_list / rx_mac_cmd_list siyahısına əlavə edir və həm istinad (reference), həm də kilidləmə olmadan raw mac_pkt->sdata (və skb->dev == sdata->dev) məlumatını saxlayaraq proses kontekstli işçini (worker) təyin edir: - siyahıların kilidi yoxdur: softirq istehsalçısı list_add_tail() etdiyi halda, mac_wq işçisi list_del() edir, buna görə də eyni phy üzərindəki paralel interfeyslər siyahını korlayır; - işçilər interfeys azad edildikdən sonra ona müraciət edirlər. mac802154_rx_mac_cmd_worker() birbaşa mac_pkt->sdata-ya toxunur, mac802154_rx_beacon_worker() -> mac802154_process_beacon() isə skb->dev (== sdata->dev) ünvanına müraciət edir. İnterfeysin silinməsi onun sdata (netdev_priv) hissəsini azad edir, lakin növbədə gözləyən freym hələ də ora işarə edir, buna görə də sonrakı işçi icrası use-after-free xətasına səbəb olur. Hədəf interfeysi MAC komanda freymləri ilə doldurub onu silməklə KASAN altında təkrar yaradılmışdır (beacon yolu skb->dev vasitəsilə eyni sinifdir): BUG: KASAN: slab-use-after-free in mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154] Read of size 4 at addr ffff888002f9ea18 by task kworker/u8:1/31 Workqueue: phy0-mac-cmds mac802154_rx_mac_cmd_worker [mac802154] Call Trace: mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154] process_one_work+0x611/0xe80 worker_thread+0x52e/0xdc0 kthread+0x30c/0x630 ret_from_fork+0x2fd/0x3e0 Hər iki siyahı birlikdə düzəldilmişdir: - local->rx_lock əlavə edildi və hər bir siyahı girişində tətbiq olundu: softirq istehsalçısı üçün (sadə spin_lock, softirq konteksti) və işçilər və təmizləmə (flush) üçün (spin_lock_bh, proses konteksti); - növbəyə alınmış freymin ömrü boyunca interfeys netdev_hold()/netdev_put() ilə sabitləndi, beləliklə, interfeys silinsə belə, işçi təhlükəsiz şəkildə sdata / skb->dev ünvanlarına müraciət edə bilər; - kilid altında başlanğıcdan çıxarma (dequeue) həyata keçirildi və işçilərdə bütün siyahı dövr şəklində boşaldıldı (əvvəllər onlar hər icrada bir freymi emal edirdi və qalanlarını boşaltmaq üçün sonrakı növbəyəalmaya güvənirdilər); - interfeys qeydiyyatdan çıxarılmazdan əvvəl, hələ başlamamış freymlər ieee802154_if_remove() (RCU grace dövründən sonra) və ieee802154_remove_interfaces() dövründən silindi — sonuncu variant ieee802154_if_remove() vasitəsilə getməyən tam-phy sökülmə yoludur. Artıq freymi növbədən çıxarmış aktiv işçi öz netdev istinadını saxlayır; daha sonra unregister_netdevice() funksiyası netdev_run_todo() daxilində bunun tamamlanmasını gözləyir, bu isə rtnl_unlock() zamanı (rtnl azad edildikdə) və interfeys bağlanandan sonra icra olunur, beləliklə o, rtnl-i bloklamır. Assosiasiya TX-də bloklanan işçi yalnız həmin bir interfeysin qeydiyyatdan çıxarılmasını gecikdirir (adi "waiting for %s to become free" mesajı), rtnl-i saxlamır. Məhz bu səbəbdən, ieee802154_sync_queue() vasitəsilə işçinin məhdudiyyətsiz MLME TX gözləməsində bloklana biləcək rtnl altındakı cancel_work_sync() əvəzinə netdev_hold() istifadə edilmişdir. MAC-komanda işçisi əlavə olaraq dayandırılmış interfeys üçün emalı ötürür (ieee802154_sdata_running()), beləliklə sökülmə zamanı lazımsız assosiasiya cavabının qarşısını alır.

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

Necə düzəltmək olar

Yeniləyin
  • Linux Linux4826fd8373f684f9952536333ad45b26acd3455d, 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 07f0214018d7241e3610c1be984c8abfce16c099, 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 2f37fba846c9fdff5fc15b6d93656057ccd13031 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 4826fd8373f684f9952536333ad45b26acd3455d, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 07f0214018d7241e3610c1be984c8abfce16c099, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 2f37fba846c9fdff5fc15b6d93656057ccd13031, 6.34826fd8373f684f9952536333ad45b26acd3455d, 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 07f0214018d7241e3610c1be984c8abfce16c099, 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 2f37fba846c9fdff5fc15b6d93656057ccd13031

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