CVE-2024-50006 ext4: fix i_data_sem unlock order in ext4_ind_migrate()
A race condition in the Linux kernel ext4 filesystem can cause a deadlock during file migration, leading to denial of service.
- 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-50006?
CVE-2024-50006 is a medium-severity vulnerability in Linux kernel, published on 21 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:
ext4: fix i_data_sem unlock order in ext4_ind_migrate()
Fuzzing reports a possible deadlock in jbd2_log_wait_commit.
This issue is triggered when an EXT4_IOC_MIGRATE ioctl is set to require synchronous updates because the file descriptor is opened with O_SYNC. This can lead to the jbd2_journal_stop() function calling jbd2_might_wait_for_commit(), potentially causing a deadlock if the EXT4_IOC_MIGRATE call races with a write(2) system call.
This problem only arises when CONFIG_PROVE_LOCKING is enabled. In this case, the jbd2_might_wait_for_commit macro locks jbd2_handle in the jbd2_journal_stop function while i_data_sem is locked. This triggers lockdep because the jbd2_journal_start function might also lock the same jbd2_handle simultaneously.
Found by Linux Verification Center (linuxtesting.org) with syzkaller.
Rule: add
Weakness: CWE-667
Which versions are affected by CVE-2024-50006?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-50006?
Apply the vendor's patch.
Is CVE-2024-50006 being exploited?
There is no known exploitation of CVE-2024-50006 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-52126, BELL-CVE-2024-50006, DEBIAN-CVE-2024-50006, GHSA-6rhp-8rx2-2869, UBUNTU-CVE-2024-50006.