CVE-2026-31715Linux内核的f2fs文件系统驱动存在一个释放后重用漏洞。该漏洞由f2fs_write_end_io()函数与系统卸载过程之间的竞态条件引起。当卸载发生时,node_inode被释放并置为NULL,但并发的IO回调仍可能尝试访问该指针,导致内核崩溃或潜在的权限提升。
漏洞核心在于并发处理时的顺序错误。在卸载过程中,f2fs_put_super()等待所有F2FS_WB_CP_DATA页面写入完成。一旦sbi->nr_pages计数递减为零,系统会释放sbi->node_inode并置空。然而,在f2fs_write_end_io()回调中,如果先执行dec_page_count()唤醒卸载进程,随后再调用f2fs_in_warm_node_list()检查node_inode,此时node_inode可能已被置NULL,导致空指针解引用或释放后重用。攻击者可利用此竞态条件,通过本地低权限账户触发内核Panic或进一步利用。