CVE-2026-31702Linux内核f2fs文件系统中存在释放后重利用漏洞。在并发卸载场景下,`f2fs_compress_write_end_io`函数中的计数器递减可能导致`sbi`结构体被提前释放,而后续代码仍访问该内存,导致系统崩溃或潜在权限提升。
该漏洞源于Linux内核f2fs文件系统压缩写回完成路径中的竞态条件。在`f2fs_compress_write_end_io`函数执行时,调用`dec_page_count`可能会将`F2FS_WB_CP_DATA`计数器减至零,从而解除对`f2fs_put_super`中并发卸载CPU的阻塞。此时卸载路径会调用`f2fs_destroy_page_array_cache`销毁`sbi->page_array_slab`并释放`sbi`。然而,Bio完成回调仍在执行,当调用`page_array_free(sbi, ...)`时,会尝试解引用已被销毁的slab缓存调用`kmem_cache_free`,导致内核崩溃或潜在的权限提升。修复方法是将`dec_page_count`移至`page_array_free`之后,确保在计数器递减可能触发卸载之前,所有对`sbi`的访问均已完成。