CVE-2024-40935

cachefiles: flush all requests after setting CACHEFILES_DEAD

published July 12, 2024

CVSS
—
EPSS
0%
Percentile
16.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

cachefiles: flush all requests after setting CACHEFILES_DEAD

In ondemand mode, when the daemon is processing an open request, if the

kernel flags the cache as CACHEFILES_DEAD, the cachefiles_daemon_write()

will always return -EIO, so the daemon can't pass the copen to the kernel.

Then the kernel process that is waiting for the copen triggers a hung_task.

Since the DEAD state is irreversible, it can only be exited by closing

/dev/cachefiles. Therefore, after calling cachefiles_io_error() to mark

the cache as CACHEFILES_DEAD, if in ondemand mode, flush all requests to

avoid the above hungtask. We may still be able to read some of the cached

data before closing the fd of /dev/cachefiles.

Note that this relies on the patch that adds reference counting to the req,

otherwise it may UAF.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00259 · 16.6th percentile
Published
2024-07-12T12:25Z
EPSS history
Timeline
  • 12 JUL 12:25Z
    cachefiles: flush all requests after setting CACHEFILES_DEAD
    cvelistv5