CVE-2024-39469: nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
The error handling in nilfs_empty_dir() when a directory folio/page read
fails is incorrect, as in the old ext2 implementation, and if the
folio/page cannot be read or nilfs_check_folio() fails, it will falsely
determine the directory as empty and corrupt the file system.
In addition, since nilfs_empty_dir() does not immediately return on a
failed folio/page read, but continues to loop, this can cause a long loop
with I/O if i_size of the directory's inode is also corrupted, causing the
log writer thread to wait and hang, as reported by syzbot.
Fix these issues by making nilfs_empty_dir() immediately return a false
value (0) if it fails to get a directory folio/page.
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue affects NILFS2 filesystem handling. When directory data cannot be read correctly, the kernel may wrongly treat the directory as empty, risking filesystem corruption. In some corrupted filesystem states, it can also loop for a long time and hang kernel log-writing work.
Executive priority
Treat this as a focused availability and data-integrity risk, not a broad remote compromise signal. Patch through normal kernel update channels, with faster handling for systems that use NILFS2 or handle potentially corrupted storage media.
Technical view
The flaw is in nilfs_empty_dir(). On directory folio/page read failure or nilfs_check_folio() failure, the function could return an incorrect empty-directory result and continue looping instead of failing closed. The upstream fix makes it immediately return false when the directory page cannot be obtained.
Likely exposure
Exposure is most likely on Linux systems that mount NILFS2 filesystems using affected kernel versions. General Linux systems that do not use NILFS2 are less likely exposed. The source bundle does not identify remote exposure or application-level attack paths.
Exploitation context
The sources describe syzbot-reported hang behavior and filesystem corruption conditions, not active real-world exploitation. The CVE is not listed as KEV in the provided bundle. Evidence does not support claiming exploitation in the wild.
Researcher notes
Key validation is whether nilfs_empty_dir() fails closed on unreadable directory folios/pages. The provided data lacks CVSS, CWE, exploitability details, and exact downstream fixed package versions beyond referenced upstream commits and a Debian LTS advisory link.
Mitigation direction
Apply Linux kernel or distribution updates containing the referenced NILFS2 stable fixes.
Prioritize systems that mount NILFS2 filesystems or process removable/untrusted storage.
Check Debian and other distribution advisories for packaged kernel fix availability.
Avoid relying on unsupported custom kernels without the referenced upstream correction.
Validation and detection
Inventory systems running Linux kernels in the affected version ranges.
Identify hosts with NILFS2 support enabled or NILFS2 filesystems mounted.
Confirm kernel packages include the referenced stable commits or downstream backports.
Review crash, hang, and filesystem corruption reports involving NILFS2.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-39469 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.