从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:f2fs: Require FMODE_WRITE for atomic write ioctls - 描述:F2FS ioctl函数在启动和提交原子写操作时检查inode_owner_or_capable(),但此功能不适用于像SELinux或Landlock这样的LSMs,如果调用者的FSUID与inode的UID匹配,inode_owner_or_capable()立即返回true。 - 问题:存在场景,LSMs希望阻止进程写入特定文件,即使这些文件的FSUID属于进程,但当前可以通过原子写ioctl绕过。 - 解决方案:通过要求FMODE_WRITE来修复这些问题,就像F2FS_IOC_MOVE_RANGE一样,任何合法的调用者都只能使用这些ioctl来写入文件,这似乎不太可能破坏任何东西。 2. 修复代码: - 文件:fs/f2fs/file.c - 修改内容: - 添加检查FMODE_WRITE标志的条件。 - 如果没有FMODE_WRITE标志或inode_owner_or_capable()返回true,返回EBADF或EACCES错误。 3. 修复细节: - 函数:f2fs_ioctl_start_atomic_write()、f2fs_ioctl_commit_atomic_write()、f2fs_ioctl_abort_atomic_write() - 修改: - 在这些函数中添加了对FMODE_WRITE标志的检查。 - 如果没有FMODE_WRITE标志或inode_owner_or_capable()返回true,返回EBADF或EACCES错误。 4. 修复状态: - 状态:已修复(Fixes: 88b88a667971) - 作者:Jann Horn - 贡献者:Chao Yu 、Eric Biggers 、Jaeguk Kim 5. 补丁应用: - 补丁应用:通过git应用到文件fs/f2fs/file.c中。 这些信息表明,该漏洞与F2FS文件系统中的原子写操作有关,修复了在某些LSMs场景下绕过权限检查的问题。修复代码通过添加对FMODE_WRITE标志的检查来确保只有合法的调用者可以执行原子写操作。