CVE-2026-63988
Təsvir
Linux kernelində aşağıdakı zəiflik həll edilmişdir: bridge: sysfs yolunda atomik kontekstdə yuxu problemini düzəlt Git tarixçəsinin başlanğıcından bəri brport_store() həmişə bridge kilidini əldə edirdi. O vaxt bu qərar məntiqli idi: bridge kilidi bridge-in və onun portlarının STP vəziyyətini qoruyur və o zaman funksiya yalnız iki STP ilə əlaqəli atribut (cost və priority) tərəfindən istifadə olunurdu. İndiki vaxtda brport_store() daha çox atributu emal edir və onların əksəriyyəti bridge kilidinə ehtiyac duymur: * Bridge flag-ları: Yalnız RTNL tələb edir. Data yolu tərəfindən kilidsiz oxunur. Annotasiyalar net-next-də əlavə edilə bilər. * FDB portunun təmizlənməsi: Yalnız FDB kilidi tələb edir. * Multicast atributları: Yalnız multicast kilidi tələb edir. * Group forward mask: Yalnız RTNL tələb edir. Data yolu tərəfindən kilidsiz oxunur. Annotasiyalar net-next-də əlavə edilə bilər. * Backup port: Yalnız RTNL tələb edir. Data yolu tərəfindən kilidsiz oxunur. Bu problemdir, çünki bridge müəyyən bridge port flag-ları dəyişdikdə dev_set_promiscuity() çağırır və bu funksiya aşağıda göstərilən commit-dən bəri yuxuya gedə bilər, nəticədə [1] kimi splat yaranır. Bunu bridge kilidinin əhatəsini azaltmaqla və yalnız ona ehtiyac duyan iki STP ilə əlaqəli atributu emal edərkən onu əldə etməklə düzəldin. br_switchdev_set_port_flag()-dən artıq köhnəlmiş şərhi silin. SWITCHDEV_F_DEFER flag-ı net-next-də silinə bilər. [1] BUG: sleeping function called from invalid context at net/core/dev_addr_lists.c:1262 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 372, name: bash preempt_count: 201, expected: 0 RCU nest depth: 0, expected: 0 5 locks held by bash/372: #0: ffff88810c51c3f0 (sb_writers#7){.+.+}-{0:0}, at: ksys_write (fs/read_write.c:740) #1: ffff888115ce9480 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter (fs/kernfs/file.c:343) #2: ffff88810b9fd330 (kn->active#37){.+.+}-{0:0}, at: kernfs_fop_write_iter (fs/kernfs/file.c:80 fs/kernfs/file.c:344) #3: ffffffffa59473a0 (rtnl_mutex){+.+.}-{4:4}, at: brport_store (net/bridge/br_sysfs_if.c:326) #4: ffff8881099d2d58 (&br->lock){+...}-{3:3}, at: brport_store (./include/linux/spinlock.h:348 net/bridge/br_sysfs_if.c:345) Preemption disabled at: 0x0 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) __might_resched.cold (kernel/sched/core.c:9163) netif_rx_mode_run (net/core/dev_addr_lists.c:1262) netif_rx_mode_sync (net/core/dev_addr_lists.c:1428) dev_set_promiscuity (net/core/dev_api.c:289) br_manage_promisc (net/bridge/br_if.c:135 net/bridge/br_if.c:172) br_port_flags_change (net/bridge/br_if.c:242 net/bridge/br_if.c:747) store_learning (net/bridge/br_sysfs_if.c:79 net/bridge/br_sysfs_if.c:235) brport_store (net/bridge/br_sysfs_if.c:346) kernfs_fop_write_iter (fs/kernfs/file.c:352) new_sync_write (fs/read_write.c:595) vfs_write (fs/read_write.c:688) ksys_write (fs/read_write.c:740) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Necə düzəltmək olar
- linux linux_kernel6.18.35, 7.0.12 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.15.1 ≤ v < 6.18.35, 6.19 ≤ v < 7.0.12, 6.15, 7.1 | 6.18.35, 7.0.12 |
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.