CVE-2024-49884·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: ext4: fix slab-use-after-free in ext4_split_extent_at() We hit the following use-after-free: ================================================================== BUG: KASAN: slab-use-after-free in ext4_split_extent_at+0xba8/0xcc0 Read of size 2 at addr ffff88810548ed08 by task kworker/u20:0/40 CPU: 0 PID: 40 Comm: kworker/u20:0 Not tainted 6.9.0-dirty #724 Call Trace: <TASK> kasan_report+0x93/0xc0 ext4_split_extent_at+0xba8/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Allocated by task 40: __kmalloc_noprof+0x1ac/0x480 ext4_find_extent+0xf3b/0x1e70 ext4_ext_map_blocks+0x188/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Freed by task 40: kfree+0xf1/0x2b0 ext4_find_extent+0xa71/0x1e70 ext4_ext_insert_extent+0xa22/0x3260 ext4_split_extent_at+0x3ef/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] ================================================================== The flow of issue triggering is as follows: ext4_split_extent_at path = *ppath ext4_ext_insert_extent(ppath) ext4_ext_create_new_leaf(ppath) ext4_find_extent(orig_path) path = *orig_path read_extent_tree_block // return -ENOMEM or -EIO ext4_free_ext_path(path) kfree(path) *orig_path = NULL a. If err is -ENOMEM: ext4_ext_dirty(path + path->p_depth) // path use-after-free !!! b. If err is -EIO and we have EXT_DEBUG defined: ext4_ext_show_leaf(path) eh = path[depth].p_hdr // path also use-after-free !!! So when trying to zeroout or fix the extent length, call ext4_find_extent() to update the path. In addition we use *ppath directly as an ext4_ext_show_leaf() input to avoid possible use-after-free when EXT_DEBUG is defined, and to avoid unnecessary path updates.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.11.3
- Published
- 2024-10-21
Affected versions
From: 6.11
Until: 6.11.3
Fixed in: 6.11.3
How to fix this CVE
Update your Linux kernel to version 6.11.3 or later to resolve a use-after-free vulnerability in the ext4 filesystem's extent splitting logic. This vulnerability can lead to kernel panics or memory corruption when the kernel attempts to split file extents during write operations. Apply the kernel update and reboot your system to ensure the fix is active.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check your kernel version with: uname -r | grep -E '^6\.11\.[0-2]' (vulnerable if output is shown)
- List loaded ext4 kernel modules with: lsmod | grep ext4 to confirm ext4 filesystem support is active
- Search system logs for use-after-free KASAN warnings: sudo grep -i 'kasan.*slab-use-after-free\|ext4_split_extent' /var/log/kern.log or journalctl -xe | grep -i 'ext4_split_extent'
- Verify the fix by running: uname -r and confirming the version is 6.11.3 or later
FAQ
What is CVE-2024-49884?
CVE-2024-49884 is a use-after-free vulnerability in the Linux kernel's ext4 filesystem driver that occurs during extent splitting operations. When the kernel fails to allocate memory or encounters I/O errors while splitting file extents, it can access freed memory structures, potentially causing crashes or data corruption.
Is CVE-2024-49884 being actively exploited?
No, CVE-2024-49884 is not listed in CISA's KEV catalog and no public exploits are currently available. However, it is a high-severity vulnerability that requires patching to prevent potential system instability.
What versions of Kernel are affected by CVE-2024-49884?
Linux kernel versions 6.11.0 through 6.11.2 are vulnerable. The vulnerability was resolved in kernel version 6.11.3.
How do I check if my server is vulnerable to CVE-2024-49884?
Run: uname -r and verify your kernel version. If the output shows 6.11.0, 6.11.1, or 6.11.2, your system is vulnerable and requires immediate patching.
Does Defensia detect CVE-2024-49884?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-49884 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/393a46f60ea4f249dc9d496d4eb2d542f5e11ade
- https://git.kernel.org/stable/c/448100a29395b0c8b4c42967155849fe0fbe808f
- https://git.kernel.org/stable/c/5d949ea75bb529ea6342e83465938a3b0ac51238
- https://git.kernel.org/stable/c/8fe117790b37c84c651e2bad9efc0e7fda73c0e3
- https://git.kernel.org/stable/c/915ac3630488af0ca194dc63b86d99802b4f6e18
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-49884. Free for 1 server.
Get started free