CVE Catalog

CVE-2024-50006

MediumCVSS 4.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.19%

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

Summary

In the Linux kernel, a bug in ext4_ind_migrate() concerns the unlock order of i_data_sem. This can lead to a deadlock when an EXT4_IOC_MIGRATE ioctl is issued on a file descriptor opened with O_SYNC, racing with a write(2) system call. The issue only occurs when CONFIG_PROVE_LOCKING is enabled.

Risk Assessment

The deadlock can cause a process or the entire system to hang, resulting in a denial of service (DoS). In production environments with lock debugging enabled, this may paralyze access to ext4 filesystems.

Recommendation

Update the Linux kernel to a version containing the fix. If not possible, consider disabling CONFIG_PROVE_LOCKING in production environments, though this does not fully eliminate the risk.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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

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