CVE-2026-31400

sunrpc: fix cache_request leak in cache_release

published April 3, 2026

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

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

sunrpc: fix cache_request leak in cache_release

When a reader's file descriptor is closed while in the middle of reading

a cache_request (rp->offset != 0), cache_release() decrements the

request's readers count but never checks whether it should free the

request.

In cache_read(), when readers drops to 0 and CACHE_PENDING is clear, the

cache_request is removed from the queue and freed along with its buffer

and cache_head reference. cache_release() lacks this cleanup.

The only other path that frees requests with readers == 0 is

cache_dequeue(), but it runs only when CACHE_PENDING transitions from

set to clear. If that transition already happened while readers was

still non-zero, cache_dequeue() will have skipped the request, and no

subsequent call will clean it up.

Add the same cleanup logic from cache_read() to cache_release(): after

decrementing readers, check if it reached 0 with CACHE_PENDING clear,

and if so, dequeue and free the cache_request.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00162 · 5.1th percentile
Published
2026-04-03T15:16Z
EPSS history
Timeline
  • 03 APR 15:16Z
    sunrpc: fix cache_request leak in cache_release
    cvelistv5