CVE-2024-53690

Summary

In the Linux kernel, the following vulnerability has been resolved:

nilfs2: prevent use of deleted inode

syzbot reported a WARNING in nilfs_rmdir. [1]

Because the inode bitmap is corrupted, an inode with an inode number that should exist as a ".nilfs" file was reassigned by nilfs_mkdir for "file0", causing an inode duplication during execution. And this causes an underflow of i_nlink in rmdir operations.

The inode is used twice by the same task to unmount and remove directories ".nilfs" and "file0", it trigger warning in nilfs_rmdir.

Avoid to this issue, check i_nlink in nilfs_iget(), if it is 0, it means that this inode has been deleted, and iput is executed to reclaim it.

[1] WARNING: CPU: 1 PID: 5824 at fs/inode.c:407 drop_nlink+0xc4/0x110 fs/inode.c:407 … Call Trace: <TASK> nilfs_rmdir+0x1b0/0x250 fs/nilfs2/namei.c:342 vfs_rmdir+0x3a3/0x510 fs/namei.c:4394 do_rmdir+0x3b5/0x580 fs/namei.c:4453 __do_sys_rmdir fs/namei.c:4472 [inline] __se_sys_rmdir fs/namei.c:4470 [inline] __x64_sys_rmdir+0x47/0x50 fs/namei.c:4470 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < 55e4baa0d32f0530ddc64c26620e1f2f8fa2724caffected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < 5d4ed71327b0b5f3b179a19dc3c06be9509ab3dbaffected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < 912188316a8c9e41b8c1603c2276a05043b14f96affected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < ef942d233643777f7b2a5deef620e82942983143affected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < 284760b320a0bac411b18108316939707dccb12baffected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < ff561987ff12b6a3233431ff659b5d332e22f153affected
LinuxLinuxd25006523d0b9e49fd097b2e974e7c8c05bd7f54 < 901ce9705fbb9f330ff1f19600e5daf9770b0175affected
LinuxLinux2.6.30affected
LinuxLinux0 < 2.6.30unaffected
LinuxLinux5.4.289 <= 5.4.*unaffected
LinuxLinux5.10.233 <= 5.10.*unaffected
LinuxLinux5.15.176 <= 5.15.*unaffected
LinuxLinux6.1.122 <= 6.1.*unaffected
LinuxLinux6.6.68 <= 6.6.*unaffected
LinuxLinux6.12.7 <= 6.12.*unaffected
LinuxLinux6.13 <= *unaffected

Weaknesses

ADP Enrichment

CVE Program Container

Additional References

References