CVE-2024-26704·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: ext4: fix double-free of blocks due to wrong extents moved_len In ext4_move_extents(), moved_len is only updated when all moves are successfully executed, and only discards orig_inode and donor_inode preallocations when moved_len is not zero. When the loop fails to exit after successfully moving some extents, moved_len is not updated and remains at 0, so it does not discard the preallocations. If the moved extents overlap with the preallocated extents, the overlapped extents are freed twice in ext4_mb_release_inode_pa() and ext4_process_freed_data() (as described in commit 94d7c16cbbbd ("ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT")), and bb_free is incremented twice. Hence when trim is executed, a zero-division bug is triggered in mb_update_avg_fragment_size() because bb_free is not zero and bb_fragments is zero. Therefore, update move_len after each extent move to avoid the issue.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.7.6
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 2% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2024-26704 scores 7.8 on CVSS, so a successful attack would be serious — but at <0.1%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 6.7
Until: 6.7.6
Fixed in: 6.7.6
How to fix this CVE
Update your Linux kernel to version 6.7.6 or later to resolve a critical double-free vulnerability in the ext4 filesystem's extent moving function. This flaw can cause system instability and kernel panics when moving file extents, particularly when preallocated extents overlap with moved data. Prioritize this update for systems running kernel versions 6.7.0 through 6.7.5.
sudo dnf check-update kernel && sudo dnf update kernelDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to check your current kernel version. Versions 6.7.0 through 6.7.5 are affected.
- Verify ext4 filesystem usage with 'df -T | grep ext4' to confirm if ext4 partitions are in use on your system.
- Search system logs for panic traces mentioning 'mb_update_avg_fragment_size' or 'ext4_mb_release_inode_pa' using: sudo grep -i 'mb_update_avg_fragment_size\|ext4_mb_release_inode_pa' /var/log/kern.log /var/log/messages 2>/dev/null
- After patching, confirm the new kernel is running with 'uname -r' and verify it shows version 6.7.6 or later.
FAQ
What is CVE-2024-26704?
CVE-2024-26704 is a double-free vulnerability in the Linux kernel's ext4 filesystem that occurs when moving file extents. The moved_len counter is not properly updated during failed extent operations, causing preallocated blocks to be freed twice and potentially triggering a kernel panic in memory management code.
Is CVE-2024-26704 being actively exploited?
No, this vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog and no public exploits are currently available. However, it can still be triggered through legitimate file operations using the EXT4_IOC_MOVE_EXT ioctl.
What versions of Kernel are affected by CVE-2024-26704?
Linux kernel versions 6.7.0 through 6.7.5 are vulnerable. The fix was released in kernel 6.7.6.
How do I check if my server is vulnerable to CVE-2024-26704?
Run 'uname -r' and check if the output is between 6.7.0 and 6.7.5. If your kernel version falls in this range, your system is vulnerable.
Does Defensia detect CVE-2024-26704?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server running version 6.7.0 through 6.7.5, CVE-2024-26704 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/185eab30486ba3e7bf8b9c2e049c79a06ffd2bc1
- https://git.kernel.org/stable/c/2883940b19c38d5884c8626483811acf4d7e148f
- https://git.kernel.org/stable/c/55583e899a5357308274601364741a83e78d6ac4
- https://git.kernel.org/stable/c/559ddacb90da1d8786dd8ec4fd76bbfa404eaef6
- https://git.kernel.org/stable/c/afba9d11320dad5ce222ac8964caf64b7b4bedb1
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-26704. Free for 1 server.
Get started free