In the Linux kernel, the following vulnerability has been resolved:
ipv4: fib: Don't dump dying fibinfo in fibleaf_notify().
syzbot reported use-after-free in nsimfib4prepare_event(). [0]
The problem is that the following functions call fibinfohold() / refcountinc() while dumping fibinfo under RCU, which is unsafe.
refcountincnot_zero() must be used, but it would be too late there.
Let's guarantee the lifetime of fibinfo in fibleaf_notify().
Note that IPv6 does not need the corresponding change since fib6tabledump() holds fib6table.tb6lock.
WARNING: lib/refcount.c:25 at refcountwarnsaturate+0x9f/0x110 lib/refcount.c:25, CPU#0: kworker/u8:15/3420 Modules linked in: CPU: 0 UID: 0 PID: 3420 Comm: kworker/u8:15 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026 Workqueue: netns cleanupnet RIP: 0010:refcountwarn_saturate+0x9f/0x110 lib/refcount.c:25 Code: eb 66 85 db 74 3e 83 fb 01 75 4c e8 1b f1 22 fd 48 8d 3d 84 cb f1 0a 67 48 0f b9 3a eb 4a e8 08 f1 22 fd 48 8d 3d 81 cb f1 0a <67> 48 0f b9 3a eb 37 e8 f5 f0 22 fd 48 8d 3d 7e cb f1 0a 67 48 0f RSP: 0018:ffffc9000f2c7270 EFLAGS: 00010293 RAX: ffffffff84a18858 RBX: 0000000000000002 RCX: ffff888032ff9ec0 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8f9353e0 RBP: 0000000000000000 R08: ffff888032ff9ec0 R09: 0000000000000005 R10: 0000000000000100 R11: 0000000000000004 R12: ffff8880570cc000 R13: dffffc0000000000 R14: ffff88802b40563c R15: ffff8880570cc000 FS: 0000000000000000(0000) GS:ffff888126173000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb1f4d5d000 CR3: 000000006072a000 CR4: 00000000003526f0 Call Trace: <TASK> __refcount_add include/linux/refcount.h:-1 [inline] __refcountinc include/linux/refcount.h:366 [inline] refcountinc include/linux/refcount.h:383 [inline] fibinfohold include/net/ipfib.h:629 [inline] nsimfib4prepareevent drivers/net/netdevsim/fib.c:930 [inline] nsimfibeventschedulework drivers/net/netdevsim/fib.c:1000 [inline] nsimfibeventnb+0x1055/0x1240 drivers/net/netdevsim/fib.c:1043 callfibnotifier+0x45/0x80 net/core/fibnotifier.c:25 callfibentrynotifier net/ipv4/fibtrie.c:90 [inline] fibleafnotify net/ipv4/fibtrie.c:2176 [inline] fibtablenotify net/ipv4/fibtrie.c:2194 [inline] fibnotify+0x36b/0x5e0 net/ipv4/fibtrie.c:2217 fibnetdump net/core/fibnotifier.c:70 [inline] registerfibnotifier+0x184/0x360 net/core/fibnotifier.c:108 nsimfibcreate+0x85d/0x9f0 drivers/net/netdevsim/fib.c:1596 nsimdevreloadcreate drivers/net/netdevsim/dev.c:1604 [inline] nsimdevreloadup+0x374/0x7c0 drivers/net/netdevsim/dev.c:1058 devlinkreload+0x501/0x8d0 net/devlink/dev.c:475 devlinkpernetpreexit+0x1ff/0x420 net/devlink/core.c:558 opspreexitlist net/core/netnamespace.c:161 [inline] opsundolist+0x187/0x940 net/core/netnamespace.c:234 cleanupnet+0x56e/0x800 net/core/netnamespace.c:702 processonework kernel/workqueue.c:3314 [inline] processscheduledworks+0xb5d/0x1860 kernel/workqueue.c:3397 workerthread+0xa53/0xfc0 kernel/workqueue.c:3478 kthread+0x388/0x470 kernel/kthread.c:436 retfromfork+0x514/0xb70 arch/x86/kernel/process.c:158 retfromforkasm+0x1a/0x30 arch/x86/entry/entry64.S:245 </TASK>
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74289.json",
"cna_assigner": "Linux"
}