In the Linux kernel, the following vulnerability has been resolved:
net: sched: use RCU read-side critical section in taprio_dump()
Fix possible use-after-free in 'taprio_dump()' by adding RCU read-side critical section there. Never seen on x86 but found on a KASAN-enabled arm64 system when investigating https://syzkaller.appspot.com/bug?extid=b65e0af58423fc8a73aa:
[T15862] BUG: KASAN: slab-use-after-free in tapriodump+0xa0c/0xbb0 [T15862] Read of size 4 at addr ffff0000d4bb88f8 by task repro/15862 [T15862] [T15862] CPU: 0 UID: 0 PID: 15862 Comm: repro Not tainted 6.11.0-rc1-00293-gdefaf1a2113a-dirty #2 [T15862] Hardware name: QEMU QEMU Virtual Machine, BIOS edk2-20240524-5.fc40 05/24/2024 [T15862] Call trace: [T15862] dumpbacktrace+0x20c/0x220 [T15862] showstack+0x2c/0x40 [T15862] dumpstacklvl+0xf8/0x174 [T15862] printreport+0x170/0x4d8 [T15862] kasanreport+0xb8/0x1d4 [T15862] asanreportload4noabort+0x20/0x2c [T15862] tapriodump+0xa0c/0xbb0 [T15862] tcfillqdisc+0x540/0x1020 [T15862] qdiscnotify.isra.0+0x330/0x3a0 [T15862] tcmodifyqdisc+0x7b8/0x1838 [T15862] rtnetlinkrcvmsg+0x3c8/0xc20 [T15862] netlinkrcvskb+0x1f8/0x3d4 [T15862] rtnetlinkrcv+0x28/0x40 [T15862] netlinkunicast+0x51c/0x790 [T15862] netlinksendmsg+0x79c/0xc20 [T15862] _socksendmsg+0xe0/0x1a0 [T15862] _syssendmsg+0x6c0/0x840 [T15862] syssendmsg+0x1ac/0x1f0 [T15862] _syssendmsg+0x110/0x1d0 [T15862] _arm64syssendmsg+0x74/0xb0 [T15862] invokesyscall+0x88/0x2e0 [T15862] el0svccommon.constprop.0+0xe4/0x2a0 [T15862] doel0svc+0x44/0x60 [T15862] el0svc+0x50/0x184 [T15862] el0t64synchandler+0x120/0x12c [T15862] el0t64sync+0x190/0x194 [T15862] [T15862] Allocated by task 15857: [T15862] kasansavestack+0x3c/0x70 [T15862] kasansavetrack+0x20/0x3c [T15862] kasansaveallocinfo+0x40/0x60 [T15862] _kasankmalloc+0xd4/0xe0 [T15862] _kmalloccachenoprof+0x194/0x334 [T15862] tapriochange+0x45c/0x2fe0 [T15862] tcmodifyqdisc+0x6a8/0x1838 [T15862] rtnetlinkrcvmsg+0x3c8/0xc20 [T15862] netlinkrcvskb+0x1f8/0x3d4 [T15862] rtnetlinkrcv+0x28/0x40 [T15862] netlinkunicast+0x51c/0x790 [T15862] netlinksendmsg+0x79c/0xc20 [T15862] _socksendmsg+0xe0/0x1a0 [T15862] _syssendmsg+0x6c0/0x840 [T15862] _syssendmsg+0x1ac/0x1f0 [T15862] _syssendmsg+0x110/0x1d0 [T15862] _arm64syssendmsg+0x74/0xb0 [T15862] invokesyscall+0x88/0x2e0 [T15862] el0svccommon.constprop.0+0xe4/0x2a0 [T15862] doel0svc+0x44/0x60 [T15862] el0svc+0x50/0x184 [T15862] el0t64synchandler+0x120/0x12c [T15862] el0t64sync+0x190/0x194 [T15862] [T15862] Freed by task 6192: [T15862] kasansavestack+0x3c/0x70 [T15862] kasansavetrack+0x20/0x3c [T15862] kasansavefreeinfo+0x4c/0x80 [T15862] poisonslabobject+0x110/0x160 [T15862] _kasanslabfree+0x3c/0x74 [T15862] kfree+0x134/0x3c0 [T15862] tapriofreeschedcb+0x18c/0x220 [T15862] rcucore+0x920/0x1b7c [T15862] rcucoresi+0x10/0x1c [T15862] handlesoftirqs+0x2e8/0xd64 [T15862] _do_softirq+0x14/0x20