CVE-2026-31519Linux内核中的Btrfs文件系统在子卷创建逻辑中存在漏洞。由于`create_subvol()`未设置`BTRFS_ROOT_ORPHAN_CLEANUP`标志,当dentry缓存被清理且遇到延迟iputs竞态时,孤儿清理流程会失败。这导致子卷目录项损坏,表现为无法删除或创建文件,严重时可导致文件系统中止,造成系统拒绝服务。
漏洞核心在于`create_subvol()`调用`d_instantiate_new()`时遗漏了`BTRFS_ROOT_ORPHAN_CLEANUP`标志的设置。当子卷的dentry因内存压力或手动清理被驱逐后,下一次查找将触发`btrfs_orphan_cleanup()`。若此时与ordered extent创建产生的延迟iput发生竞态,清理函数可能因找不到预期的孤儿项而返回-ENOENT。这导致系统通过`d_splice_alias`为有效的子卷生成负dentry。在此状态下,删除子卷返回ENOENT,覆盖写入返回EEXIST,且可能导致内核panic,破坏文件系统的可用性。