CVE-2024-47660 fsnotify: clear PARENT_WATCHED flags lazily
A race condition in the Linux kernel fsnotify subsystem can cause softlockups and denial of service when removing watches from directories with many dentries.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-47660?
CVE-2024-47660 is a medium-severity vulnerability in Linux kernel, published on 9 Oct 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Weakness: CWE-362
Which versions are affected by CVE-2024-47660?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-47660?
Apply the vendor's patch.
Is CVE-2024-47660 being exploited?
There is no known exploitation of CVE-2024-47660 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2024-47660, DEBIAN-CVE-2024-47660, GHSA-ccgr-xwcc-r26p, ROOT-OS-DEBIAN-11-CVE-2024-47660, UBUNTU-CVE-2024-47660.