CVE-2024-41051 cachefiles: wait for ondemand_object_worker to finish when dropping object

High 7.8 Published Updated

A use-after-free in the Linux kernel cachefiles subsystem allows local attackers to execute arbitrary code or escalate privileges.

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-41051?

CVE-2024-41051 is a high-severity use after free vulnerability in Linux kernel, published on 29 Jul 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:

cachefiles: wait for ondemand_object_worker to finish when dropping object

When queuing ondemand_object_worker() to re-open the object, cachefiles_object is not pinned. The cachefiles_object may be freed when the pending read request is completed intentionally and the related erofs is umounted. If ondemand_object_worker() runs after the object is freed, it will incur use-after-free problem as shown below.

process A processs B process C process D

cachefiles_ondemand_send_req() // send a read req X // wait for its completion

// close ondemand fd cachefiles_ondemand_fd_release() // set object as CLOSE

cachefiles_ondemand_daemon_read() // set object as REOPENING queue_work(fscache_wq, &info->ondemand_work)

// close /dev/cachefiles cachefiles_daemon_release cachefiles_flush_reqs complete(&req->done)

// read req X is completed // umount the erofs fs cachefiles_put_object() // object will be freed cachefiles_ondemand_deinit_obj_info() kmem_cache_free(object) // both info and object are freed ondemand_object_worker()

When dropping an object, it is no longer necessary to reopen the object, so use cancel_work_sync() to cancel or wait for ondemand_object_worker() to finish.

Weakness: CWE-416

Which versions are affected by CVE-2024-41051?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-41051?

Apply the vendor's patch.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is CVE-2024-41051 being exploited?

There is no known exploitation of CVE-2024-41051 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2024-41051, DEBIAN-CVE-2024-41051, GHSA-83hh-pj86-jr69, UBUNTU-CVE-2024-41051.

Is CVE-2024-41051 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free