CVE-2025-71107CVE-2025-71107是Linux内核f2fs(Flash-Friendly File System)文件系统中的一个竞态条件漏洞。该漏洞存在于f2fs_put_super()函数中,当系统执行umount操作时,可能在所有node page读取完成前就调用f2fs_put_super(),导致文件系统引用计数泄露。攻击者可通过触发特定的umount操作序列,利用此竞态条件造成内核崩溃(BUG at fs/f2fs/super.c:1939!),表现为Oops: invalid opcode错误。此问题在xfstests的generic/335和generic/336测试中偶尔复现,表明这是一个时序相关的并发问题。CVSS评分5.5,属于中等严重级别,本地低权限攻击者即可利用,无需用户交互。
漏洞核心在于f2fs文件系统卸载流程中的同步问题。当执行umount时,f2fs_put_super()会被调用以清理文件系统资源。问题在于某些情况下,node page的异步读取操作可能尚未完成,但f2fs_put_super()已经开始执行。这导致F2FS_RD_NODE类型的页面引用未被正确释放,文件系统引用计数泄露。内核在umount结束时检测到泄漏,输出'detect filesystem reference count leak during umount, type: 9, count: 1',随后触发BUG_ON()导致内核崩溃。栈追踪显示崩溃发生在f2fs_put_super+0x3b3/0x3c0。修复方案是在f2fs_put_super()中添加f2fs_wait_on_all_pages()调用,等待所有F2FS_RD_NODE页面读取完成后再继续卸载流程。这确保了在superblock清理前,所有页面引用都被正确释放。