CVE-2026-93250
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: vxlan: mdb: vxlan_mdb_flush() funksiyasındakı use-after-free xətasının düzəldilməsi vxlan_mdb_flush() funksiyası MDB yazılarını hlist_for_each_entry_safe() vasitəsilə dövr edir ki, bu da yalnız cari yazının silinməsinə icazə verir. Dövrün üzərindəki şərhin əksinə olaraq, bir yazının silinməsi digər yazının silinməsini tetikləyə bilər. (*, G) yazısının uzaq ünvanlarının təmizlənməsi (flushing), onların mənbə siyahısı üçün yaradılan və artıq uzaq ünvanları qalmayan (S, G) yazılarını da silir: vxlan_mdb_remotes_flush() -> vxlan_mdb_remote_del() -> vxlan_mdb_remote_srcs_del() -> vxlan_mdb_remote_src_del() -> vxlan_mdb_remote_src_fwd_del() -> __vxlan_mdb_del() -> vxlan_mdb_entry_put() Belə bir yazı siyahıda (*, G) yazısından sonra yerləşə bilər, çünki vxlan_mdb_entry_get() mövcud yazını siyahının başına köçürmədən qaytarır. Bu ardıcıllıq, (S, G) yazısını (*, G) yazısından əvvəl əlavə etməklə əldə edilir, sonuncusu isə NLM_F_REPLACE ilə əlavə olunur, əks halda mənbənin əlavə edilməsi -EEXIST xətası ilə uğursuz olur. Beləliklə, (S, G) yazısı hlist_for_each_entry_safe() tərəfindən yadda saxlanılan yazı olur və (*, G) yazısı emal edilərkən azad edilir. Növbəti iterasiya onun üzərində yenidən hlist_del() çağırır və LIST_POISON1 dəyərini LIST_POISON2-yə yazır [1]. Cihazın silinməsindən əlavə, təmizləmə prosesinə NLM_F_BULK ilə RTM_DELMDB vasitəsilə də daxil olmaq mümkündür. Uzaq ünvanlar təmizləndikdən sonra növbəti yazının yenidən oxunması ilə problem həll edilmişdir. Cari yazı bu təmizləmə zamanı silinə bilməz, çünki mənbə siyahıları yalnız (*, G) yazılarında konfiqurasiya edilə bilər və silinən yazılar (S, G) yazılarıdır. Buna görə də o, hələ də bağlıdır və onun növbəti göstəricisi (next pointer) silinmələri əks etdirir. [1] BUG: KASAN: wild-memory-access in vxlan_mdb_entry_put.part.0+0x328/0x588 Write of size 8 at addr dead000000000122 by task ip/327 CPU: 3 UID: 1000 PID: 327 Comm: ip Not tainted 7.2.0-rc7 #2 PREEMPT Call trace: vxlan_mdb_entry_put.part.0+0x328/0x588 vxlan_mdb_flush+0x1d8/0x25c vxlan_mdb_fini+0x8c/0x100 vxlan_uninit+0x1c/0x7c unregister_netdevice_many_notify+0x954/0xd4c rtnl_dellink+0x210/0x530 rtnetlink_rcv_msg+0x434/0x4d0 netlink_rcv_skb+0xc4/0x204 rtnetlink_rcv+0x18/0x24 netlink_unicast+0x4b8/0x548 netlink_sendmsg+0x29c/0x560 ____sys_sendmsg+0x390/0x3ec ___sys_sendmsg+0x114/0x188 __sys_sendmsg+0xf0/0x178 __arm64_sys_sendmsg+0x48/0x60 invoke_syscall.constprop.0+0x58/0x180 el0_svc_common.constprop.0+0x74/0x140 do_el0_svc+0x30/0x40 el0_svc+0x38/0x98 el0t_64_sync_handler+0xa0/0xe4 el0t_64_sync+0x198/0x19c
Necə düzəltmək olar
- Linux Linuxf8a9b988e7a7bc674e74e8c901794d792c35689e, c7dc26d06f90ca11bbd6114f6a62a67d038816c7, 3e6b705bc162fc7257645725a7d2cf6c71250318, f26400b325bdc2868e40612c4804c82cf8ba6275, bc2dc66a6693a78f8c1e6ca2dbebd50f16e2c366 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | a3a48de5eade770e911d35291217bdd69ce04ef1 ≤ v < f8a9b988e7a7bc674e74e8c901794d792c35689e, a3a48de5eade770e911d35291217bdd69ce04ef1 ≤ v < c7dc26d06f90ca11bbd6114f6a62a67d038816c7, a3a48de5eade770e911d35291217bdd69ce04ef1 ≤ v < 3e6b705bc162fc7257645725a7d2cf6c71250318, a3a48de5eade770e911d35291217bdd69ce04ef1 ≤ v < f26400b325bdc2868e40612c4804c82cf8ba6275, a3a48de5eade770e911d35291217bdd69ce04ef1 ≤ v < bc2dc66a6693a78f8c1e6ca2dbebd50f16e2c366, 6.4 | f8a9b988e7a7bc674e74e8c901794d792c35689e, c7dc26d06f90ca11bbd6114f6a62a67d038816c7, 3e6b705bc162fc7257645725a7d2cf6c71250318, f26400b325bdc2868e40612c4804c82cf8ba6275, bc2dc66a6693a78f8c1e6ca2dbebd50f16e2c366 |
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.