CVE-2023-53149

Summary

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

ext4: avoid deadlock in fs reclaim with page writeback

Ext4 has a filesystem wide lock protecting ext4_writepages() calls to avoid races with switching of journalled data flag or inode format. This lock can however cause a deadlock like:

CPU0 CPU1

ext4_writepages() percpu_down_read(sbi->s_writepages_rwsem); ext4_change_inode_journal_flag() percpu_down_write(sbi->s_writepages_rwsem); - blocks, all readers block from now on ext4_do_writepages() ext4_init_io_end() kmem_cache_zalloc(io_end_cachep, GFP_KERNEL) fs_reclaim frees dentry… dentry_unlink_inode() iput() - last ref => iput_final() - inode dirty => write_inode_now()… ext4_writepages() tries to acquire sbi->s_writepages_rwsem and blocks forever

Make sure we cannot recurse into filesystem reclaim from writeback code to avoid the deadlock.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxc8585c6fcaf2011de54c3592e80a634a2b9e1a7f < 2ec97dc90df40c50e509809dc9a198638a7e18b6affected
LinuxLinuxc8585c6fcaf2011de54c3592e80a634a2b9e1a7f < 4b4340bf04ce9a52061f15000ecedd126abc093caffected
LinuxLinuxc8585c6fcaf2011de54c3592e80a634a2b9e1a7f < 00d873c17e29cc32d90ca852b82685f1673acaa5affected
LinuxLinux4.7affected
LinuxLinux0 < 4.7unaffected
LinuxLinux6.2.16 <= 6.2.*unaffected
LinuxLinux6.3.3 <= 6.3.*unaffected
LinuxLinux6.4 <= *unaffected

Weaknesses

References