Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

CVE-2026-72472

nfs: use nfsi->rwsem to protect traversal of the file lock list
Back to all
CVE

CVE-2026-72472

nfs: use nfsi->rwsem to protect traversal of the file lock list

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

nfs: use nfsi->rwsem to protect traversal of the file lock list

Lingfeng identified a bug and suggested two solutions, but both appear

to have issues.

Generally, we cannot release flc_lock while iterating over the file lock

list to avoid use-after-free (UAF) problems with file locks. However,

functions like nfsdelegationclaimlocks and nfs4reclaim_locks cannot

adhere to this rule because recoverlock or nfs4lockdelegationrecall

may take a long time. To resolve this, NFS switches to using nfsi->rwsem

for the same protection, and nfsreclaimlocks follows this approach.

Although nfsdelegationclaimlocks uses sodelegreturn_mutex instead,

this is inadequate since a single inode can have multiple nfs4_state

instances. Therefore, the fix is to also use nfsi->rwsem in this case.

Furthermore, after commit c69899a17ca4 ("NFSv4: Update of VFS byte range

lock must be atomic with the stateid update"), the functions

nfs4lockudone and nfs4lockdone also break this rule because they

call lockslockinode_wait without holding nfsi->rwsem. Simply adding

this protection could cause many deadlocks, so instead, the call to

lockslockinodewait is moved into nfs4procsetlk. Regarding the bug

fixed by commit c69899a17ca4 ("NFSv4: Update of VFS byte range

lock must be atomic with the stateid update"), it has been resolved

after commit 0460253913e5 ("NFSv4: nfs4doopen() is incorrectly triggering

state recovery") because all slots are drained before calling

nfs4doreclaim, which prevents concurrent stateid changes along this path.

Also, nfsdelegationclaim_locks does not cause this concurrency either

since when nfs4procsetlk is called with NFSDELEGATED_STATE, no RPC is

sent, so nfs4lockdone is not called. Therefore,

nfs4lockdelegationrecall from nfsdelegationclaimlocks is the first

time the stateid is set.

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
9.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/1cda95bf2e9c0e6b63545b7565fe4a1e474322f4, https://git.kernel.org/stable/c/4837fb36219e6c08b666bc31a86841bad8526358, https://git.kernel.org/stable/c/e68035178e65e2b3aa386ce61202ff33724ae418, https://git.kernel.org/stable/c/f161ef7b0dd2f51fdb002ba4a4e9bf0ee7409218, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72472.json, https://nvd.nist.gov/vuln/detail/CVE-2026-72472, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00644%
EPSS Percentile
0.48235%
Introduced Version
c69899a17ca4836230720e65493942d9582a0424,4.0.0,6.13.0,6.19.0,0
Fix Available
4837fb36219e6c08b666bc31a86841bad8526358,6.12.97,6.18.40,7.1.5,6.12.100-1

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading