CVE-2026-97595

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: mac802154: kuyruğa alınmış RX çerçeveleri aracılığıyla sdata üzerinde serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi RX softirq üreticisi olan ieee802154_subif_frame(), alınan beacon ve MAC-komut çerçevelerini local->rx_beacon_list / rx_mac_cmd_list üzerine kuyruklar ve bir işlem bağlamı çalışanı (process-context worker) zamanlar; bu sırada herhangi bir referans veya kilitleme olmaksızın ham mac_pkt->sdata (ve skb->dev == sdata->dev) saklanır: - Listelerin kilidi yoktur: softirq üreticisi list_add_tail() yaparken, mac_wq çalışanı list_del() yapar, bu nedenle aynı phy üzerindeki kardeş arayüzler listeyi bozar; - Çalışanlar, arayüz serbest bırakılmış olabilecekken ona erişmeye çalışır. mac802154_rx_mac_cmd_worker() doğrudan mac_pkt->sdata'ya erişir ve mac802154_rx_beacon_worker() -> mac802154_process_beacon() skb->dev (== sdata->dev) üzerinden erişim sağlar. Bir arayüzün kaldırılması, kuyruktaki bir çerçeve hala ona işaret ederken sdata'yı (netdev_priv) serbest bırakır, böylece daha sonra çalışan bir işlemin yürütülmesi serbest bırakıldıktan sonra kullanıma (use-after-free) yol açar. Kurban arayüze MAC komut çerçeveleri gönderilip ardından arayüz kaldırılarak KASAN altında yeniden üretilmiştir (beacon yolu da skb->dev üzerinden aynı sınıftadır): 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 Her iki liste birlikte şu şekilde düzeltilmiştir: - local->rx_lock eklenmiş ve her liste erişimi etrafında kullanılmıştır: softirq üreticisi (düz spin_lock, softirq bağlamı) ile çalışanlar ve temizleme işlemi (spin_lock_bh, işlem bağlamı); - Kuyruğa alınmış bir çerçevenin ömrü boyunca arayüz netdev_hold()/netdev_put() ile sabitlenmiştir, böylece çalışan, arayüz kaldırılırken bile güvenle sdata / skb->dev üzerinden erişim sağlayabilir; - Kilidin altında baş kısımdan kuyruktan çıkarma işlemi yapılmış ve çalışanlarda tüm liste döngüyle boşaltılmıştır (önceden her çalıştırmada tek bir çerçeveyi işliyorlardı ve geri kalanını boşaltmak için sonraki bir kuyruğa almaya güveniyorlardı); - Henüz başlatılmamış çerçeveler, arayüz kaydı silinmeden önce ieee802154_if_remove() (RCU grace süresinden sonra) ve ieee802154_remove_interfaces() döngüsünden düşürülmüştür; ikincisi, ieee802154_if_remove() üzerinden geçmeyen tüm-phy kapatma yoludur. Hali hazırda bir çerçeveyi kuyruktan çıkarmış olan aktif bir çalışan kendi netdev referansını tutmaya devam eder; unregister_netdevice() daha sonra bunu netdev_run_todo() içinde bekler. Bu işlem rtnl_unlock() sırasında (rtnl serbest bırakıldığında) ve arayüz kapatıldıktan sonra çalıştığından rtnl'yi sabitlemez. İlişkilendirme TX aşamasında engellenen bir çalışan yalnızca o arayüzün kaydının silinmesini geciktirir (olağan "%s'nin serbest kalması bekleniyor" durumu), rtnl'yi tutmaz. netdev_hold(), rtnl altında ieee802154_sync_queue() aracılığıyla çalışanın sınırsız MLME TX beklemesinde bloklanacak olan cancel_work_sync() yerine bu nedenle kullanılmıştır. MAC-komut çalışanı ayrıca durdurulmuş bir arayüz için işlemeyi atlayarak (ieee802154_sdata_running()), kapatma sırasında gereksiz bir ilişkilendirme yanıtının önüne geçer.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünLinux
Yayın25 Eyl 2026
İlk görülme25 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linux4826fd8373f684f9952536333ad45b26acd3455d, 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 07f0214018d7241e3610c1be984c8abfce16c099, 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 2f37fba846c9fdff5fc15b6d93656057ccd13031 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 4826fd8373f684f9952536333ad45b26acd3455d, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 07f0214018d7241e3610c1be984c8abfce16c099, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 57588c71177f0bfc08509c2c3a9bfe32850c0786 ≤ v < 2f37fba846c9fdff5fc15b6d93656057ccd13031, 6.34826fd8373f684f9952536333ad45b26acd3455d, 4740ef0518c5e3bf31ebfb2288a6ac3b462ead06, 07f0214018d7241e3610c1be984c8abfce16c099, 3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc, 2f37fba846c9fdff5fc15b6d93656057ccd13031

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2026-97595 · Linux · Dark Radar