Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: ext4: skip extra isize expansion during mount to prevent deadlock ext4_try_to_expand_extra_isize() is called from __ext4_mark_inode_dirty() while holding an active jbd2 handle. During mount (!SB_ACTIVE), the expand path may move xattrs to external blocks and release ea_inodes via iput(). When !SB_ACTIVE, iput() calls write_inode_now() which acquires s_writepages_rwsem, creating a circular lock dependency: s_writepages_rwsem --> jbd2_handle --> xattr_sem --> s_writepages_rwsem This can be triggered via: ext4_process_orphan() -> ext4_truncate() -> ext4_mark_inode_dirty() -> ext4_try_to_expand_extra_isize() or: ext4_evict_inode() -> ext4_mark_inode_dirty() -> ext4_try_to_expand_extra_isize() Skip expansion when !SB_ACTIVE. This is a minor loss of functionality (extra isize won't grow for these inodes during mount), which e2fsck can resolve later if needed.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 41897f1bcf4ace5f1f28d0be784b6f4f0e929641; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 9c3469377b1d8caba6bec6ef3c460810bbfb02cc; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 1dd4882dbdc8bfdf2182fa388883c143fac0902a; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 7ba09330d9ea6e996228316719eae812d7e04983; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before c5e6434cc55f30220b228be237bb666351f9f4dd; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 7ace189b9ea79cf78df9c32b940ce12735f9459a; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 2fb8ff81659a57c42bb7b49e8339a2be2a318ef8; affected c8585c6fcaf2011de54c3592e80a634a2b9e1a7f before 7461c60b9c6a839b13ad4c3490681a0cf5aa0637 |
| Linux / Linux | affected 4.7; unaffected 0 before 4.7; unaffected 5.10.270 through 5.10.*; unaffected 5.15.221 through 5.15.*; unaffected 6.1.188 through 6.1.*; unaffected 6.6.157 through 6.6.*; unaffected 6.12.110 through 6.12.*; unaffected 6.18.52 through 6.18.*; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/41897f1bcf4ace5f1f28d0be784b6f4f0e929641
- https://git.kernel.org/stable/c/9c3469377b1d8caba6bec6ef3c460810bbfb02cc
- https://git.kernel.org/stable/c/1dd4882dbdc8bfdf2182fa388883c143fac0902a
- https://git.kernel.org/stable/c/7ba09330d9ea6e996228316719eae812d7e04983
- https://git.kernel.org/stable/c/c5e6434cc55f30220b228be237bb666351f9f4dd
- https://git.kernel.org/stable/c/7ace189b9ea79cf78df9c32b940ce12735f9459a
- https://git.kernel.org/stable/c/2fb8ff81659a57c42bb7b49e8339a2be2a318ef8
- https://git.kernel.org/stable/c/7461c60b9c6a839b13ad4c3490681a0cf5aa0637