CVE-2026-90418: nilfs2: fix BUG in nilfs_copy_dirty_pages() on dirty state mismatch
In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix BUG in nilfscopydirtypages() on dirty state mismatch
Syzbot reported a kernel BUG triggered within nilfscopydirtypages(), 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.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
The issue applies to Linux kernel systems using the NILFS2 filesystem. The triggering condition involves NILFS2 detecting metadata corruption, transitioning to read-only mode, and asynchronously clearing the dirty state of a folio or page while dirty DAT pages are being copied.
How can an operator recognize that this issue has occurred?
Affected systems can trigger a kernel BUG within nilfs_copy_dirty_pages() when a retrieved dirty folio or page no longer has its dirty status. With the resolved behavior, a read-only filesystem state causes an -EROFS error instead, while an unexpected dirty-state mismatch outside read-only mode produces a warning only once.