In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to avoid UAF in f2fssyncinode_meta()
syzbot reported an UAF issue as below: [1] [2]
[1] https://syzkaller.appspot.com/text?tag=CrashReport&x=16594c60580000
================================================================== BUG: KASAN: use-after-free in _listdelentryvalid+0xa6/0x130 lib/list_debug.c:62 Read of size 8 at addr ffff888100567dc8 by task kworker/u4:0/8
CPU: 1 PID: 8 Comm: kworker/u4:0 Tainted: G W 6.1.129-syzkaller-00017-g642656a36791 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: writeback wbworkfn (flush-7:0) Call Trace: <TASK> _dumpstack lib/dumpstack.c:88 [inline] dumpstacklvl+0x151/0x1b7 lib/dumpstack.c:106 printaddressdescription mm/kasan/report.c:316 [inline] printreport+0x158/0x4e0 mm/kasan/report.c:427 kasanreport+0x13c/0x170 mm/kasan/report.c:531 _asanreportload8noabort+0x14/0x20 mm/kasan/reportgeneric.c:351 _listdelentryvalid+0xa6/0x130 lib/listdebug.c:62 _listdelentry include/linux/list.h:134 [inline] listdelinit include/linux/list.h:206 [inline] f2fsinodesynced+0x100/0x2e0 fs/f2fs/super.c:1553 f2fsupdateinode+0x72/0x1c40 fs/f2fs/inode.c:588 f2fsupdateinodepage+0x135/0x170 fs/f2fs/inode.c:706 f2fswriteinode+0x416/0x790 fs/f2fs/inode.c:734 writeinode fs/fs-writeback.c:1460 [inline] _writebacksingleinode+0x4cf/0xb80 fs/fs-writeback.c:1677 writebacksbinodes+0xb32/0x1910 fs/fs-writeback.c:1903 _writebackinodeswb+0x118/0x3f0 fs/fs-writeback.c:1974 wbwriteback+0x3da/0xa00 fs/fs-writeback.c:2081 wbcheckbackgroundflush fs/fs-writeback.c:2151 [inline] wbdowriteback fs/fs-writeback.c:2239 [inline] wbworkfn+0xbba/0x1030 fs/fs-writeback.c:2266 processonework+0x73d/0xcb0 kernel/workqueue.c:2299 workerthread+0xa60/0x1260 kernel/workqueue.c:2446 kthread+0x26d/0x300 kernel/kthread.c:386 retfromfork+0x1f/0x30 arch/x86/entry/entry_64.S:295 </TASK>
Allocated by task 298: kasansavestack mm/kasan/common.c:45 [inline] kasansettrack+0x4b/0x70 mm/kasan/common.c:52 kasansaveallocinfo+0x1f/0x30 mm/kasan/generic.c:505 _kasanslaballoc+0x6c/0x80 mm/kasan/common.c:333 kasanslaballoc include/linux/kasan.h:202 [inline] slabpostallochook+0x53/0x2c0 mm/slab.h:768 slaballocnode mm/slub.c:3421 [inline] slaballoc mm/slub.c:3431 [inline] _kmemcachealloclru mm/slub.c:3438 [inline] kmemcachealloclru+0x102/0x270 mm/slub.c:3454 allocinodesb include/linux/fs.h:3255 [inline] f2fsallocinode+0x2d/0x350 fs/f2fs/super.c:1437 allocinode fs/inode.c:261 [inline] igetlocked+0x18c/0x7e0 fs/inode.c:1373 f2fsiget+0x55/0x4ca0 fs/f2fs/inode.c:486 f2fslookup+0x3c1/0xb50 fs/f2fs/namei.c:484 _lookupslow+0x2b9/0x3e0 fs/namei.c:1689 lookupslow+0x5a/0x80 fs/namei.c:1706 walkcomponent+0x2e7/0x410 fs/namei.c:1997 lookuplast fs/namei.c:2454 [inline] pathlookupat+0x16d/0x450 fs/namei.c:2478 filenamelookup+0x251/0x600 fs/namei.c:2507 vfsstatx+0x107/0x4b0 fs/stat.c:229 vfsfstatat fs/stat.c:267 [inline] vfslstat include/linux/fs.h:3434 [inline] _dosysnewlstat fs/stat.c:423 [inline] _sesysnewlstat+0xda/0x7c0 fs/stat.c:417 _x64sysnewlstat+0x5b/0x70 fs/stat.c:417 x64syscall+0x52/0x9a0 arch/x86/include/generated/asm/syscalls64.h:7 dosyscallx64 arch/x86/entry/common.c:51 [inline] dosyscall64+0x3b/0x80 arch/x86/entry/common.c:81 entrySYSCALL64after_hwframe+0x68/0xd2
Freed by task 0: kasansavestack mm/kasan/common.c:45 [inline] kasansettrack+0x4b/0x70 mm/kasan/common.c:52 kasansavefreeinfo+0x2b/0x40 mm/kasan/generic.c:516 __kasanslabfree+0x131/0x180 mm/kasan/common.c:241 _kasanslabfree+0x11/0x20 mm/kasan/common.c:249 kasanslabfree include/linux/kasan.h:178 [inline] slabfreehook mm/slub.c:1745 [inline] slabfreefreelisthook mm/slub.c:1771 [inline] slabfree mm/slub.c:3686 [inline] kmemcachefree+0x ---truncated---
[
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@37e78cad7e9e025e63bb35bc200f44637b009bb1",
"signature_type": "Function",
"digest": {
"length": 2293.0,
"function_hash": "252233175461171229246180733659146954041"
},
"id": "CVE-2025-38578-01866f6e",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@917ae5e280bc263f56c83fba0d0f0be2c4828083",
"signature_type": "Function",
"digest": {
"length": 2778.0,
"function_hash": "258359983931401741788702492457412930632"
},
"id": "CVE-2025-38578-189d3359",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1edf68272b8cba2b2817ef1488ecb9f0f84cb6a0",
"signature_type": "Function",
"digest": {
"length": 2614.0,
"function_hash": "305620225426262445219035838480648321276"
},
"id": "CVE-2025-38578-252024a4",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1edf68272b8cba2b2817ef1488ecb9f0f84cb6a0",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-3970b6f7",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6cac47af39b2b8edbb41d47c3bd9c332f83e9932",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-7c64b0ed",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4b0cc9e0bba7525a29f37714e88df12a47997a2",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-819cc900",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@37e78cad7e9e025e63bb35bc200f44637b009bb1",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-aa510c18",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c30d79930132466f5be7d0b57add14d1a016bda",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-b212bc51",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4dcd830c420f2190ae32f03626039fde7b57b2ad",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-b3da0c97",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@917ae5e280bc263f56c83fba0d0f0be2c4828083",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-e0026d68",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6cac47af39b2b8edbb41d47c3bd9c332f83e9932",
"signature_type": "Function",
"digest": {
"length": 2923.0,
"function_hash": "83350494805256232398433518009538436409"
},
"id": "CVE-2025-38578-f5fdd407",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7c30d79930132466f5be7d0b57add14d1a016bda",
"signature_type": "Function",
"digest": {
"length": 2923.0,
"function_hash": "83350494805256232398433518009538436409"
},
"id": "CVE-2025-38578-f8ba4072",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4b0cc9e0bba7525a29f37714e88df12a47997a2",
"signature_type": "Function",
"digest": {
"length": 2923.0,
"function_hash": "83350494805256232398433518009538436409"
},
"id": "CVE-2025-38578-f9fb68ba",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dea243f58a8391e76f42ad5eb59ff210519ee772",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"194645596610880408350272649740637594058",
"236282358123630029820760687604761110546",
"147363455839467129563073549578470794911",
"306545392975338135971386234160987878174",
"40058921314943194296876412330438339272"
]
},
"id": "CVE-2025-38578-fa43795e",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dea243f58a8391e76f42ad5eb59ff210519ee772",
"signature_type": "Function",
"digest": {
"length": 2827.0,
"function_hash": "26494169668944877112069738691640215158"
},
"id": "CVE-2025-38578-fd4a54ef",
"signature_version": "v1",
"deprecated": false
},
{
"target": {
"file": "fs/f2fs/inode.c",
"function": "f2fs_evict_inode"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4dcd830c420f2190ae32f03626039fde7b57b2ad",
"signature_type": "Function",
"digest": {
"length": 2389.0,
"function_hash": "307385587447668846037635117106349127748"
},
"id": "CVE-2025-38578-ffbb572e",
"signature_version": "v1",
"deprecated": false
}
]