从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题描述:nilfs2中存在潜在的死锁问题,特别是在创建新的符号链接时。 - 原因:page_symlink()函数在nilfs_symlink()函数中被调用,这会导致内存回收过程中的循环锁依赖,从而导致读者/写者信号量之间的死锁。 - 影响:这种死锁发生在新创建的符号链接的gfp标志被覆盖为GFP_KERNEL时。 2. 解决方案: - 修复措施:通过在新创建的符号链接的页缓存GFP标志中删除__GFP_FS标志,类似于nilfs_new_inode()和nilfs_read_inode()所做的工作,以避免死锁。 - 工作原理:通过这种方式,可以确保在创建新符号链接时,不会导致死锁。 3. 相关链接: - 原始报告:https://lkml.kernel.org/r/20241020050003.4308-1-konishi.ryusuke@gmail.com - 修复补丁:https://lkml.kernel.org/r/20241020050003.4308-1-konishi.ryusuke@gmail.com - 报告者:syzbot+9ef37ac20608f4836256@syzkaller.appspotmail.com - 测试者:syzbot+9ef37ac20608f4836256@syzkaller.appspotmail.com 4. 补丁内容: - 修改文件:fs/nifs2/namei.c - 修改内容:在nilfs_symlink()函数中,删除了__GFP_FS标志。 5. 补丁应用: - 补丁应用:通过git工具应用补丁,具体命令为: 6. 补丁状态: - 状态:已修复,补丁已应用到内核源代码中。 通过这些信息,我们可以了解到这个漏洞的详细情况、修复措施以及如何应用补丁来修复这个问题。