CVE-2024-57941

netfs: Fix the (non-)cancellation of copy when cache is temporarily disabled

published January 21, 2025

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

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

netfs: Fix the (non-)cancellation of copy when cache is temporarily disabled

When the caching for a cookie is temporarily disabled (e.g. due to a DIO

write on that file), future copying to the cache for that file is disabled

until all fds open on that file are closed. However, if netfslib is using

the deprecated PG_private_2 method (such as is currently used by ceph), and

decides it wants to copy to the cache, netfs_advance_write() will just bail

at the first check seeing that the cache stream is unavailable, and

indicate that it dealt with all the content.

This means that we have no subrequests to provide notifications to drive

the state machine or even to pin the request and the request just gets

discarded, leaving the folios with PG_private_2 set.

Fix this by jumping directly to cancel the request if the cache is not

available. That way, we don't remove mark3 from the folio_queue list and

netfs_pgpriv2_cancel() will clean up the folios.

This was found by running the generic/013 xfstest against ceph with an

active cache and the "-o fsc" option passed to ceph. That would usually

hang

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00173 · 6.4th percentile
Published
2025-01-21T12:18Z
EPSS history
Timeline
  • 21 JAN 12:18Z
    netfs: Fix the (non-)cancellation of copy when cache is temporarily disabled
    cvelistv5