In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to avoid use-after-free issue in f2fsfilemapfault
syzbot reports a f2fs bug as below:
BUG: KASAN: slab-use-after-free in f2fsfilemapfault+0xd1/0x2c0 fs/f2fs/file.c:49 Read of size 8 at addr ffff88807bb22680 by task syz-executor184/5058
CPU: 0 PID: 5058 Comm: syz-executor184 Not tainted 6.7.0-syzkaller-09928-g052d534373b7 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/17/2023 Call Trace: <TASK> _dumpstack lib/dumpstack.c:88 [inline] dumpstacklvl+0x1e7/0x2d0 lib/dumpstack.c:106 printaddressdescription mm/kasan/report.c:377 [inline] printreport+0x163/0x540 mm/kasan/report.c:488 kasanreport+0x142/0x170 mm/kasan/report.c:601 f2fsfilemapfault+0xd1/0x2c0 fs/f2fs/file.c:49 _dofault+0x131/0x450 mm/memory.c:4376 dosharedfault mm/memory.c:4798 [inline] dofault mm/memory.c:4872 [inline] doptemissing mm/memory.c:3745 [inline] handleptefault mm/memory.c:5144 [inline] _handlemmfault+0x23b7/0x72b0 mm/memory.c:5285 handlemmfault+0x27e/0x770 mm/memory.c:5450 douseraddrfault arch/x86/mm/fault.c:1364 [inline] handlepagefault arch/x86/mm/fault.c:1507 [inline] excpagefault+0x456/0x870 arch/x86/mm/fault.c:1563 asmexcpagefault+0x26/0x30 arch/x86/include/asm/idtentry.h:570
The root cause is: in f2fsfilemapfault(), vmf->vma may be not alive after filemapfault(), so it may cause use-after-free issue when accessing vmf->vma->vmflags in tracef2fsfilemapfault(). So it needs to keep vmflags in separated temporary variable for tracepoint use.