从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 函数:nilfs_btree_check_delete() - 问题:在删除b-tree节点时,如果根节点没有子节点,可能会导致内存访问超出块缓冲区,从而引发潜在的OOB(Out-Of-Bounds)读取。 2. 修复措施: - 代码修改:在nilfs_btree_check_delete()函数中添加了一个检查,确保在删除节点时不会访问超出块缓冲区的内存。 - 条件检查:如果根节点没有子节点,函数将返回0,避免访问超出块缓冲区的内存。 3. 修复原因: - 原因:通常情况下,b-tree映射不会创建没有子节点的节点,但存在一种特殊情况,即从设备读取的b-tree根节点可能配置为这种方式。 - 解决方法:通过添加检查条件,确保在处理这种情况时不会引发OOB读取。 4. 相关链接: - 上游提交:https://lkml.kernel.org/r/20240904081401.16682-4-konishi.ryusuke@gmail.com - 修复补丁:17c76b0104e4 ("nilfs2: B-tree based block mapping") 5. 作者和贡献者: - 作者:Ryusuke Konishi - 贡献者:Greg Kroah-Hartman、Lizhi Xu、Andrew Morton、Sasha Levin 6. 代码变更: - 文件:fs/nifs2/btree.c - 变更内容:在nilfs_btree_check_delete()函数中添加了条件检查。 这些信息表明,该漏洞修复了在特定条件下可能导致的OOB读取问题,并通过代码修改来确保在处理b-tree节点时的安全性。