CVE-2026-31400 Details
Description
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.
A vulnerability exists in the Linux kernel's sunrpc component, where the cache_request is not properly freed when a reader's file descriptor is closed mid-read. This issue arises because cache_release() decreases the readers count but fails to check if the request should be freed. Although cache_read() includes the necessary cleanup, cache_release() does not. As a result, requests can remain in memory without being cleaned up, leading to a potential memory leak.
The vulnerability has been addressed in the official Linux Git repository. Users can upgrade to the latest version to apply the fix.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/17ad31b3a43b72aec3a3d83605891e1397d0d065 | kernel.org | Patch |
| https://git.kernel.org/stable/c/1dfedb293943e491379c9302b428e6f920a73d12 | kernel.org | Patch |
| https://git.kernel.org/stable/c/301670dcd098c1fe5c2fe90fb3c7a8f4814d2351 | kernel.org | Patch |
| https://git.kernel.org/stable/c/373457de14281c1fc7cace6fc4c8a267fc176673 | kernel.org | Patch |
| https://git.kernel.org/stable/c/41f6ba6c98a618043d2cd71030bf9a752dfab8b2 | kernel.org | Patch |
| https://git.kernel.org/stable/c/7bcd5e318876ac638c8ceade7a648e76ac8c48e1 | kernel.org | Patch |
| https://git.kernel.org/stable/c/be5c35960e5ead70862736161836e2d1bc7352dc | kernel.org | Patch |
| https://git.kernel.org/stable/c/f18c1f2a88ca91357916997cdb0f7adaf14fc497 | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-401 | Missing Release of Memory after Effective Lifetime | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 2.6.12.1, < 5.10.253 >= 5.11, < 5.15.203 >= 5.16, < 6.1.167 >= 6.2, < 6.6.130 >= 6.7, < 6.12.78 >= 6.13, < 6.18.20 >= 6.19, < 6.19.10 2.6.12 - 2.6.12 rc2 2.6.12 rc3 2.6.12 rc4 2.6.12 rc5 7.0 rc1 7.0 rc2 7.0 rc3 7.0 rc4 |
CPE
Remediation
| |
Change History
5 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 24, 2026 | CVE Translated | [email protected] |
| Jun 17, 2026 | CVE Modified | kernel.org |
| May 20, 2026 | Initial Analysis | [email protected] |
| Apr 18, 2026 | CVE Modified | kernel.org |
| Apr 3, 2026 | New CVE Received | kernel.org |