CVE-2026-22980
What it is
In the Linux kernel, the following vulnerability has been resolved: nfsd: provide locking for v4_end_grace Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly. We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock. nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access. However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it. For this we add a new flag protected with nn->client_lock. It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held. So this patch adds a nfsd_net field "client_tracking_active" which is set as described. Another field "grace_end_forced", is set when v4_end_grace is written. After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This "grace_end_forced" field bypasses other checks for whether the grace period has finished. This resolves a race which can result in use-after-free.
At a glance
- Exploitability
- Can be exploited locally on the machine with a low-privilege account. High risk of data exposure, data tampering, service disruption.
- Exploit odds
- 0.1% chance of exploitation in the next 30 days (EPSS).
- Fix
- A patch, advisory or fixed version is referenced. Upgrade or apply it.
Timeline
- PublishedDisclosed publicly on CVE.org and NVD
- Last updatedMost recent change to the record
Details
- Published
- Last modified
- Exploit probability
- 0.1% · EPSS, next 30 days
- Weakness
- CWE-416 · Use after free
- Record status
- Modified
Affected
- Linux Kernel < 5.10.248
- Linux Kernel < 5.15.198
- Linux Kernel < 6.1.161
- Linux Kernel < 6.6.121
- Linux Kernel < 6.12.66
- Linux Kernel < 6.18.6
- Linux Kernel 6.19
Attack profile CVSS 3.1 · 7.8
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Raw vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Fix and advisories
- https://git.kernel.org/stable/c/06600719d0f7a723811c45e4d51f5b742f345309
- https://git.kernel.org/stable/c/2857bd59feb63fcf40fe4baf55401baea6b4feb4
- https://git.kernel.org/stable/c/34eb22836e0cdba093baac66599d68c4cd245a9d
- https://git.kernel.org/stable/c/53f07d095e7e680c5e4569a55a019f2c0348cdc6
- https://git.kernel.org/stable/c/ba4811c8b433bfa681729ca42cc62b6034f223b0
- https://git.kernel.org/stable/c/ca97360860eb02e3ae4ba42c19b439a0fcecbf06
- https://git.kernel.org/stable/c/e8bfa2401d4c51eca6e48e9b33c798828ca9df61
References
- https://git.kernel.org/stable/c/06600719d0f7a723811c45e4d51f5b742f345309
- https://git.kernel.org/stable/c/2857bd59feb63fcf40fe4baf55401baea6b4feb4
- https://git.kernel.org/stable/c/34eb22836e0cdba093baac66599d68c4cd245a9d
- https://git.kernel.org/stable/c/53f07d095e7e680c5e4569a55a019f2c0348cdc6
- https://git.kernel.org/stable/c/ba4811c8b433bfa681729ca42cc62b6034f223b0
- https://git.kernel.org/stable/c/ca97360860eb02e3ae4ba42c19b439a0fcecbf06
- https://git.kernel.org/stable/c/e8bfa2401d4c51eca6e48e9b33c798828ca9df61
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html