CVE-2026-23192

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: linkwatch: UAF-ın qarşısını almaq üçün çağırıcılarda __dev_put() istifadə edin linkwatch_do_dev() funksiyası linkwatch istinadını azad etmək üçün __dev_put()-i çağırdıqdan sonra cihazın refcount-u 1-ə düşə bilər. Bu nöqtədə netdev_run_todo() davam edə bilər (çünki linkwatch_sync_dev() boş siyahı görür və bloklamadan geri dönür), netdev_wait_allrefs_any() vasitəsilə refcount-un 1 olmasını gözləyir və sonra kobject_put() vasitəsilə cihazı azad edir. Bu, __linkwatch_run_queue() artıq azad edilmiş cihaz üzərində netdev_unlock_ops()-i çağırmağa çalışdıqda use-after-free (istifadədən sonra azad etmə) yaradır. Nəzərə alın ki, netdev_run_todo()-da kobject_put()-dən əvvəl netdev_lock_ops()/netdev_unlock_ops() cütlüyünün əlavə edilməsi işə yaramayacaq, çünki netdev_lock_ops() şərtlidir - o, yalnız netdev_need_ops_lock() true qaytardıqda kilidləyir. Əgər cihaz ops_lock tələb etmirsə, linkwatch heç bir kilidi saxlamayacaq və netdev_run_todo()-nun kilidi əldə etməsi sinxronizasiya təmin etməyəcək. Bunu __dev_put()-i linkwatch_do_dev()-dən onun çağırıcılarına köçürməklə düzəldin. Cihaz istinadı məntiqi olaraq cihazın siyahıdan çıxarılması ilə cütləşir, buna görə də siyahıdan çıxarma prosesini yerinə yetirən çağırıcının onu azad etməsi məntiqlidir. Bu, __dev_put()-in bütün cihaz girişləri tamamlandıqdan sonra yerləşdirilməsinə imkan verir və UAF-ın qarşısını alır. Xəta, __linkwatch_run_queue()-da linkwatch_do_dev()-dən sonra mdelay(2000) əlavə etməklə və sonra bunları işə salmaqla təkrar istehsal edilə bilər: ip tuntap add mode tun name tun_test ip link set tun_test up ip link set tun_test carrier off ip link set tun_test carrier on sleep 0.5 ip tuntap del mode tun name tun_test KASAN hesabatı: ================================================================== BUG: KASAN: use-after-free in netdev_need_ops_lock include/net/netdev_lock.h:33 [inline] BUG: KASAN: use-after-free in netdev_unlock_ops include/net/netdev_lock.h:47 [inline] BUG: KASAN: use-after-free in __linkwatch_run_queue+0x865/0x8a0 net/core/link_watch.c:245 Read of size 8 at addr ffff88804de5c008 by task kworker/u32:10/8123 CPU: 0 UID: 0 PID: 8123 Comm: kworker/u32:10 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: events_unbound linkwatch_event Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0x156/0x4c9 mm/kasan/report.c:482 kasan_report+0xdf/0x1a0 mm/kasan/report.c:595 netdev_need_ops_lock include/net/netdev_lock.h:33 [inline] netdev_unlock_ops include/net/netdev_lock.h:47 [inline] __linkwatch_run_queue+0x865/0x8a0 net/core/link_watch.c:245 linkwatch_event+0x8f/0xc0 net/core/link_watch.c:304 process_one_work+0x9c2/0x1840 kernel/workqueue.c:3257 process_scheduled_works kernel/workqueue.c:3340 [inline] worker_thread+0x5da/0xe40 kernel/workqueue.c:3421 kthread+0x3b3/0x730 kernel/kthread.c:463 ret_from_fork+0x754/0xaf0 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 </TASK> ==================================================================

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc14 fev 2026
İlk görülmə14 fev 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.18.10 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.15.1 ≤ v < 6.18.10, 6.15, 6.196.18.10

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