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-89713

NFSD: check truncate permission under inode lock
Back to all
CVE

CVE-2026-89713

NFSD: check truncate permission under inode lock

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

NFSD: check truncate permission under inode lock

nfsdsetattr() checks whether a size update needs NFSDMAY_TRUNC

before it takes inode_lock(). The comparison uses the file size sampled

by that unlocked read, but the actual ATTR_SIZE update is applied later

under inodelock() by notifychange().

This leaves a TOCTOU window for append-only files. If a client sends a

SETATTR that does not shrink the file at the time of the unlocked

sample, a concurrent append can extend the file before nfsd_setattr()

takes inodelock(). notifychange() then applies a real truncation

without the NFSDMAYTRUNC check that rejects IS_APPEND(inode). The VFS

truncate syscall paths perform their own append-only checks before

calling notify_change(), so NFSD must make this decision against the

locked size it is about to change.

Split the write-count acquisition from the truncation permission check.

Keep getwriteaccess() before the locked setattr work, then recheck

whether the requested size is below isizeread(inode) after inode_lock()

has been acquired and before notifychange(ATTRSIZE). This also avoids

the plain unlocked inode->i_size load.

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.1
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/3afa17d93ba8c925f49370c816c6dae5112d8c24, https://git.kernel.org/stable/c/44086254479035de42ca3d286ecf25521d4e6325, https://git.kernel.org/stable/c/b778e0e0a16759f22a70579c3cf8d254a40d4a7f, https://git.kernel.org/stable/c/d8352da196349182e1afd5a93308256cddc0a97d, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89713.json, https://nvd.nist.gov/vuln/detail/CVE-2026-89713, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.1

CVSS Score
0
10

Basic Information

Base CVSS
9.1
EPSS Probability
0.00612%
EPSS Percentile
0.47679%
Introduced Version
783112f7401ff449d979530209b3f6c2594fdb4e,3.2.89,3.16.44,4.4.53,4.9.14,4.10.2,604a3c407026d6162d15300478e63f901e435efc,cc4d5dc73841b98d33cdfb9822d70b0aac4beca5,3ee4f442e5b37a537297b812557b1163f96b5399,a3c6cbc4eac4473ed5461d5faae2794d3e5c0e44,982898d7f97a35447403c3fcecc0d96c646ce101,4.11.0,6.13.0,6.19.0,0
Fix Available
b778e0e0a16759f22a70579c3cf8d254a40d4a7f,3.3,3.17,4.5,4.10,4.11,6.12.109,6.18.50,7.2.4,6.12.111-1~deb12u1,6.12.111-1,0:6.12.0-207.111.5.1.el10uek,0:6.12.0-207.111.5.1.el9uek

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading