CVE-2026-31577Linux内核中的nilfs2文件系统存在空指针解引用漏洞。由于DAT inode的btree节点缓存延迟初始化,在挂载后立即执行垃圾回收操作时,若未先进行btree操作,会导致`i_assoc_inode`为NULL。调用`NILFS_IOCTL_CLEAN_SEGMENTS`会触发该漏洞,引发内核崩溃,导致拒绝服务。
该漏洞发生在Linux内核的nilfs2文件系统模块中,具体涉及元数据文件(DAT inode)的管理逻辑。DAT inode的btree节点缓存通过`i_assoc_inode`指针进行访问,该指针采用了延迟初始化的设计,仅在首次进行btree操作时才分配内存。然而,负责垃圾回收的`nilfs_mdt_save_to_shadow_map`函数在将脏页复制到影子映射时,并未对`i_assoc_inode`进行非空检查,而是直接引用了该指针。利用该漏洞需要本地访问权限。攻击者首先挂载一个nilfs2文件系统,并确保在未触发任何btree操作的情况下,立即发送`NILFS_IOCTL_CLEAN_SEGMENTS` ioctl指令。由于此时`i_assoc_inode`尚未初始化(为NULL),当内核尝试通过该指针访问数据时,会触发空指针解引用,导致内核发生通用保护错误(General Protection Fault)。虽然该漏洞不直接影响机密性和完整性,但会导致系统不可用,造成拒绝服务。