CVE-2026-31714Linux内核的f2fs文件系统模块中存在一个内存泄漏漏洞,该漏洞被追踪为CVE-2026-31714。问题出在`f2fs_rename`函数的实现逻辑中。为了修复SELinux标签创建问题,开发者在特定提交中引入了`f2fs_setup_filename`函数调用,用于设置文件名加密上下文。然而,该调用后未正确执行配对的`f2fs_free_filename`函数来释放分配的内存资源。当本地用户频繁触发重命名操作时,会导致内核内存持续泄漏,最终可能耗尽系统内存,影响系统可用性。
该漏洞的根源在于Linux内核源码的`fs/f2fs/namei.c`文件中的`f2fs_rename`函数。在commit 40b2d55e0452中,为了在白名单初始化期间创建SELinux标签,代码增加了对`f2fs_setup_filename`的调用。该函数内部会调用`fscrypt_setup_filename`,进而通过`kmalloc`分配内存(大小通常为16字节,用于存储加密相关的文件名信息)。然而,在函数退出路径或错误处理路径中,代码遗忘了调用`f2fs_free_filename`来释放这块内存。根据syzbot提供的堆栈回溯,泄漏发生在`f2fs_rename` -> `f2fs_setup_filename` -> `fscrypt_setup_filename` -> `__kmalloc_noprof`链路中。由于攻击向量是本地(AV:L)且需要低权限(PR:L),攻击者可以通过在受影响的系统上执行特定的重命名脚本或程序,反复触发该代码路径,导致内核内存不可逆地减少,最终引发OOM(内存溢出)或系统拒绝服务。