CVE-2024-41057·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: cachefiles: fix slab-use-after-free in cachefiles_withdraw_cookie() We got the following issue in our fault injection stress test: ================================================================== BUG: KASAN: slab-use-after-free in cachefiles_withdraw_cookie+0x4d9/0x600 Read of size 8 at addr ffff888118efc000 by task kworker/u78:0/109 CPU: 13 PID: 109 Comm: kworker/u78:0 Not tainted 6.8.0-dirty #566 Call Trace: <TASK> kasan_report+0x93/0xc0 cachefiles_withdraw_cookie+0x4d9/0x600 fscache_cookie_state_machine+0x5c8/0x1230 fscache_cookie_worker+0x91/0x1c0 process_one_work+0x7fa/0x1800 [...] Allocated by task 117: kmalloc_trace+0x1b3/0x3c0 cachefiles_acquire_volume+0xf3/0x9c0 fscache_create_volume_work+0x97/0x150 process_one_work+0x7fa/0x1800 [...] Freed by task 120301: kfree+0xf1/0x2c0 cachefiles_withdraw_cache+0x3fa/0x920 cachefiles_put_unbind_pincount+0x1f6/0x250 cachefiles_daemon_release+0x13b/0x290 __fput+0x204/0xa00 task_work_run+0x139/0x230 do_exit+0x87a/0x29b0 [...] ================================================================== Following is the process that triggers the issue: p1 | p2 ------------------------------------------------------------ fscache_begin_lookup fscache_begin_volume_access fscache_cache_is_live(fscache_cache) cachefiles_daemon_release cachefiles_put_unbind_pincount cachefiles_daemon_unbind cachefiles_withdraw_cache fscache_withdraw_cache fscache_set_cache_state(cache, FSCACHE_CACHE_IS_WITHDRAWN); cachefiles_withdraw_objects(cache) fscache_wait_for_objects(fscache) atomic_read(&fscache_cache->object_count) == 0 fscache_perform_lookup cachefiles_lookup_cookie cachefiles_alloc_object refcount_set(&object->ref, 1); object->volume = volume fscache_count_object(vcookie->cache); atomic_inc(&fscache_cache->object_count) cachefiles_withdraw_volumes cachefiles_withdraw_volume fscache_withdraw_volume __cachefiles_free_volume kfree(cachefiles_volume) fscache_cookie_state_machine cachefiles_withdraw_cookie cache = object->volume->cache; // cachefiles_volume UAF !!! After setting FSCACHE_CACHE_IS_WITHDRAWN, wait for all the cookie lookups to complete first, and then wait for fscache_cache->object_count == 0 to avoid the cookie exiting after the volume has been freed and triggering the above issue. Therefore call fscache_withdraw_volume() before calling cachefiles_withdraw_objects(). This way, after setting FSCACHE_CACHE_IS_WITHDRAWN, only the following two cases will occur: 1) fscache_begin_lookup fails in fscache_begin_volume_access(). 2) fscache_withdraw_volume() will ensure that fscache_count_object() has been executed before calling fscache_wait_for_objects().
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.9.11
- Published
- 2024-07-29
Affected versions
From: 6.7
Until: 6.9.11
Fixed in: 6.9.11
How to fix this CVE
Update your Linux kernel to version 6.9.11 or later to resolve a use-after-free vulnerability in the cachefiles subsystem that can lead to memory corruption and privilege escalation. The issue occurs when the kernel's filesystem cache withdrawal process frees memory objects prematurely while they are still being accessed by concurrent operations. Apply the kernel update immediately followed by a system reboot to ensure the patched version is loaded.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r
- Verify if vulnerable version is between 6.7 and 6.9.10: grep VERSION /proc/version
- Search system logs for cachefiles-related kernel warnings: sudo dmesg | grep -i cachefiles
- Look for KASAN slab-use-after-free errors in kernel logs: sudo journalctl -k | grep -i 'use-after-free\|KASAN'
- Confirm kernel update was applied: uname -r (should be 6.9.11 or later)
FAQ
What is CVE-2024-41057?
CVE-2024-41057 is a use-after-free vulnerability in the Linux kernel's cachefiles subsystem where memory allocated for filesystem cache volumes is freed prematurely, allowing concurrent operations to read from already-freed memory and potentially escalate privileges or crash the system.
Is CVE-2024-41057 being actively exploited?
No, CVE-2024-41057 is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are currently available, though it remains a high-severity issue requiring prompt patching.
What versions of Kernel are affected by CVE-2024-41057?
Linux kernel versions 6.7 through 6.9.10 are vulnerable. The fix was released in kernel 6.9.11 and backported to stable branches.
How do I check if my server is vulnerable to CVE-2024-41057?
Run 'uname -r' to check your kernel version; if it displays a version between 6.7 and 6.9.10, your system is vulnerable and requires immediate update to 6.9.11 or later.
Does Defensia detect CVE-2024-41057?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-41057 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/5d8f805789072ea7fd39504694b7bd17e5f751c4
- https://git.kernel.org/stable/c/8de253177112a47c9af157d23ae934779188b4e1
- https://git.kernel.org/stable/c/9e67589a4a7b7e5660b524d1d5fe61242bcbcc11
- https://git.kernel.org/stable/c/ef81340401e8a371d6b17f69e76d861920972cfe
- https://git.kernel.org/stable/c/5d8f805789072ea7fd39504694b7bd17e5f751c4
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-41057. Free for 1 server.
Get started free