CVE Catalog

CVE-2024-47660

MediumCVSS 4.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.16%

5th percentile - higher than 5% of all known CVEs

Summary

In the Linux kernel, a vulnerability in fsnotify regarding lazy clearing of PARENT_WATCHED flags has been resolved. In some setups directories can have many (usually negative) dentries, causing __fsnotify_update_child_dentry_flags() to take significant time under inode->i_lock, leading to lock contention and softlockup reports. The fix sets PARENT_WATCHED flags only when a parent starts watching children, and clears false positive flags lazily in __fsnotify_parent() when watching stops.

Risk Assessment

High contention on the inode->i_lock can lead to softlockups and system performance degradation. The risk affects systems with heavy fsnotify usage and directories with many dentries.

Recommendation

Update the Linux kernel to a version containing the fix for CVE-2024-47660. Verify that your distribution has provided the corresponding kernel package.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: fsnotify: clear PARENT_WATCHED flags lazily In some setups directories can have many (usually negative) dentries. Hence __fsnotify_update_child_dentry_flags() function can take a significant amount of time. Since the bulk of this function happens under inode->i_lock this causes a significant contention on the lock when we remove the watch from the directory as the __fsnotify_update_child_dentry_flags() call from fsnotify_recalc_mask() races with __fsnotify_update_child_dentry_flags() calls from __fsnotify_parent() happening on children. This can lead upto softlockup reports reported by users. Fix the problem by calling fsnotify_update_children_dentry_flags() to set PARENT_WATCHED flags only when parent starts watching children. When parent stops watching children, clear false positive PARENT_WATCHED flags lazily in __fsnotify_parent() for each accessed child.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS