{"id":7198,"date":"2026-09-04T18:49:28","date_gmt":"2026-09-04T10:49:28","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74264"},"modified":"2026-09-04T18:49:28","modified_gmt":"2026-09-04T10:49:28","slug":"cve-2026-74264","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74264","title":{"rendered":"CVE-2026-74264 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: watchdog: fix re"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: watchdog: fix refcount tracking races<\/p>\n<p>Blamed commit converted the untracked dev_hold()\/dev_put() calls<br \/>\nin the watchdog code to use the tracked dev_hold_track()\/dev_put_track()<br \/>\n(which were later renamed\/interfaced to netdev_hold() and netdev_put()).<\/p>\n<p>By introducing dev-&gt;watchdog_dev_tracker to store the<br \/>\nreference tracking information without adding synchronization<br \/>\nbetween netdev_watchdog_up() and dev_watchdog(), it enabled the<br \/>\nrace condition where this pointer could be overwritten or freed<br \/>\nconcurrently, leading to the list corruption crash syzbot reported:<\/p>\n<p>list_del corruption, ffff888114a18c00-&gt;next is NULL<br \/>\n kernel BUG at lib\/list_debug.c:52 !<br \/>\nOops: invalid opcode: 0000 [#1] SMP KASAN PTI<br \/>\nCPU: 1 UID: 0 PID: 91 Comm: kworker\/u8:5 Not tainted syzkaller #0 PREEMPT(lazy)<br \/>\nHardware name: Google Google Compute Engine\/Google Compute Engine, BIOS Google 05\/09\/2026<br \/>\nWorkqueue: events_unbound linkwatch_event<br \/>\n RIP: 0010:__list_del_entry_valid_or_report.cold+0x22\/0x2a lib\/list_debug.c:52<br \/>\nCall Trace:<\/p>\n<p>  __list_del_entry_valid include\/linux\/list.h:132 [inline]<br \/>\n  __list_del_entry include\/linux\/list.h:246 [inline]<br \/>\n  list_move_tail include\/linux\/list.h:341 [inline]<br \/>\n  ref_tracker_free+0x1a7\/0x6c0 lib\/ref_tracker.c:329<br \/>\n  netdev_tracker_free include\/linux\/netdevice.h:4491 [inline]<br \/>\n  netdev_put include\/linux\/netdevice.h:4508 [inline]<br \/>\n  netdev_put include\/linux\/netdevice.h:4504 [inline]<br \/>\n  netdev_watchdog_down net\/sched\/sch_generic.c:600 [inline]<br \/>\n  dev_deactivate_many+0x28c\/0xfe0 net\/sched\/sch_generic.c:1363<br \/>\n  dev_deactivate+0x109\/0x1d0 net\/sched\/sch_generic.c:1397<br \/>\n  linkwatch_do_dev net\/core\/link_watch.c:184 [inline]<br \/>\n  linkwatch_do_dev+0xd3\/0x120 net\/core\/link_watch.c:166<br \/>\n  __linkwatch_run_queue+0x3a5\/0x810 net\/core\/link_watch.c:240<br \/>\n  linkwatch_event+0x8f\/0xc0 net\/core\/link_watch.c:314<br \/>\n  process_one_work+0xa0e\/0x1980 kernel\/workqueue.c:3314<br \/>\n  process_scheduled_works kernel\/workqueue.c:3397 [inline]<br \/>\n  worker_thread+0x5ef\/0xe50 kernel\/workqueue.c:3478<br \/>\n  kthread+0x370\/0x450 kernel\/kthread.c:436<br \/>\n  ret_from_fork+0x69a\/0xc80 arch\/x86\/kernel\/process.c:158<br \/>\n  ret_from_fork_asm+0x1a\/0x30 arch\/x86\/entry\/entry_64.S:245<\/p>\n<p>This patch has three coordinated parts:<\/p>\n<p>1) Add dev-&gt;watchdog_lock and dev-&gt;watchdog_ref_held to serialize watchdog operations.<\/p>\n<p>2) Remove netdev_watchdog_up() call from netif_carrier_on():<br \/>\n   This ensures netdev_watchdog_up() is only called from process\/BH context<br \/>\n   (via linkwatch workqueue dev_activate()), allowing us to use<br \/>\n   spin_lock_bh() for synchronization.<\/p>\n<p>3) Synchronize watchdog up and watchdog timer:<br \/>\n   Protect netdev_watchdog_up() with tx_global_lock and watchdog_lock.<br \/>\n   Only allocate a new tracker in netdev_watchdog_up() if one is<br \/>\n   not already present.<br \/>\n   In dev_watchdog(), ensure we don&#8217;t release the tracker if the<br \/>\n   timer was rescheduled either by dev_watchdog() itself or concurrently<br \/>\n   by netdev_watchdog_up().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: watchdog: fix refcount tracking races<\/p>\n<p>Blamed commit converted the untracked dev_hold()\/dev_put() calls<br \/>\nin the watchdog code t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7198","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}