nilfs2: fix BUG in nilfs_copy_dirty_pages() on dirty state mismatch
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.157, 6.12.110, 6.18.52, 7.2.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix BUG in nilfs_copy_dirty_pages() on dirty state mismatch Syzbot reported a kernel BUG triggered within nilfs_copy_dirty_pages(), which copies dirty DAT file folios/pages to its shadow page cache. The BUG occurs when a retrieved dirty folio/page unexpectedly loses its 'dirty' status. This issue arises because, since the commit referenced below, the 'dirty' flag of a folio/page can be cleared asynchronously after the filesystem detects metadata corruption and transitions to read-only mode. Resolve the issue by returning an -EROFS error if the filesystem has transitioned to read-only mode. Also change the behavior to issue a kernel warning only once instead of triggering a kernel BUG when this unexpected 'dirty' state is detected while the filesystem is not in read-only mode.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 8c26c4e2694a163d525976e804d81cd955bbb40c · fixed in 5166a21b12f549774f2983fa86d2526ea9e66ace; From 8c26c4e2694a163d525976e804d81cd955bbb40c · fixed in 4e1f21e7540b25d83f86b50780836ed7d2afcc93; From 8c26c4e2694a163d525976e804d81cd955bbb40c · fixed in 3904fb0ee741ebbbc27ec8f50a9bb6cd31e8af05; From 8c26c4e2694a163d525976e804d81cd955bbb40c · fixed in f181155baf0c93a74ebe804c6cecbe970e78ee9e; From 8c26c4e2694a163d525976e804d81cd955bbb40c · fixed in 66f4ad3ce158902e5f98afea93189972ed8750c2
- Linux Linux
3.10
- KernelLinux
From 3.10.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6