{"id":"CVE-2026-89713","title":"NFSD: check truncate permission under inode lock","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: check truncate permission under inode lock\n\nnfsd_setattr() checks whether a size update needs NFSD_MAY_TRUNC\nbefore it takes inode_lock(). The comparison uses the…","severity":"critical","cvss":9.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","cvssSource":"cna","cwe":["CWE-367"],"vendor":"Linux","product":"Linux","affected":["Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 52d0c5bdfe232c9974d4b11f97078b9c7814f05d","Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 3afa17d93ba8c925f49370c816c6dae5112d8c24","Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < d8352da196349182e1afd5a93308256cddc0a97d","Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 44086254479035de42ca3d286ecf25521d4e6325","Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < b778e0e0a16759f22a70579c3cf8d254a40d4a7f","Linux 604a3c407026d6162d15300478e63f901e435efc","Linux cc4d5dc73841b98d33cdfb9822d70b0aac4beca5","Linux 3ee4f442e5b37a537297b812557b1163f96b5399","Linux a3c6cbc4eac4473ed5461d5faae2794d3e5c0e44","Linux 982898d7f97a35447403c3fcecc0d96c646ce101","Linux >= 3.2.89 < 3.3","Linux >= 3.16.44 < 3.17","Linux >= 4.4.53 < 4.5","Linux >= 4.9.14 < 4.10","Linux >= 4.10.2 < 4.11","Linux 4.11"],"ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"partial","timestamp":"2026-10-16T19:26:29.958634Z"},"published":"2026-09-11","updated":"2026-10-21","sourceUpdated":"2026-10-21T12:48:27.026Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89713","references":[{"url":"https://git.kernel.org/stable/c/52d0c5bdfe232c9974d4b11f97078b9c7814f05d"},{"url":"https://git.kernel.org/stable/c/3afa17d93ba8c925f49370c816c6dae5112d8c24"},{"url":"https://git.kernel.org/stable/c/d8352da196349182e1afd5a93308256cddc0a97d"},{"url":"https://git.kernel.org/stable/c/44086254479035de42ca3d286ecf25521d4e6325"},{"url":"https://git.kernel.org/stable/c/b778e0e0a16759f22a70579c3cf8d254a40d4a7f"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89713.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-89713"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2532459"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89713"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89713"},{"url":"https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89713.mbox"}],"tags":["cve.org","csaf","vex","red-hat","score-dispute"],"epss":0.00612,"epssPercentile":0.49082,"scores":{"cna":9.1,"vendor":7},"ingestedAt":"2026-09-14T15:23:07.472Z","slug":"CVE-2026-89713","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: check truncate permission under inode lock\n\nnfsd_setattr() checks whether a size update needs NFSD_MAY_TRUNC\nbefore it takes inode_lock(). The comparison uses the file size sampled\nby that unlocked read, but the actual ATTR_SIZE update is applied later\nunder inode_lock() by notify_change().\n\nThis leaves a TOCTOU window for append-only files. If a client sends a\nSETATTR that does not shrink the file at the time of the unlocked\nsample, a concurrent append can extend the file before nfsd_setattr()\ntakes inode_lock(). notify_change() then applies a real truncation\nwithout the NFSD_MAY_TRUNC check that rejects IS_APPEND(inode). The VFS\ntruncate syscall paths perform their own append-only checks before\ncalling notify_change(), so NFSD must make this decision against the\nlocked size it is about to change.\n\nSplit the write-count acquisition from the truncation permission check.\nKeep get_write_access() before the locked setattr work, then recheck\nwhether the requested size is below i_size_read(inode) after inode_lock()\nhas been acquired and before notify_change(ATTR_SIZE). This also avoids\nthe plain unlocked inode->i_size load.\n\n## Affected\n\n- `Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 52d0c5bdfe232c9974d4b11f97078b9c7814f05d`\n- `Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 3afa17d93ba8c925f49370c816c6dae5112d8c24`\n- `Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < d8352da196349182e1afd5a93308256cddc0a97d`\n- `Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < 44086254479035de42ca3d286ecf25521d4e6325`\n- `Linux >= 783112f7401ff449d979530209b3f6c2594fdb4e < b778e0e0a16759f22a70579c3cf8d254a40d4a7f`\n- `Linux 604a3c407026d6162d15300478e63f901e435efc`\n- `Linux cc4d5dc73841b98d33cdfb9822d70b0aac4beca5`\n- `Linux 3ee4f442e5b37a537297b812557b1163f96b5399`\n- `Linux a3c6cbc4eac4473ed5461d5faae2794d3e5c0e44`\n- `Linux 982898d7f97a35447403c3fcecc0d96c646ce101`\n- `Linux >= 3.2.89 < 3.3`\n- `Linux >= 3.16.44 < 3.17`\n- `Linux >= 4.4.53 < 4.5`\n- `Linux >= 4.9.14 < 4.10`\n- `Linux >= 4.10.2 < 4.11`\n- `Linux 4.11`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Important · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4, Red Hat Enterprise Linux 6 · no fix planned: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4, Red Hat Enterprise Linux 7, … · updated 2026-09-21 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89713.json)","depth":"midnight","depthScore":50,"depthScoreParts":{"impact":50.1,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[{"seq":223392,"id":"CVE-2026-89713","ts":1792183975572,"field":"cvss","old":"7","new":"9.1"},{"seq":223391,"id":"CVE-2026-89713","ts":1792183975572,"field":"severity","old":"high","new":"critical"},{"seq":208560,"id":"CVE-2026-89713","ts":1790009090750,"field":"cvss","old":"6.8","new":"7"},{"seq":208559,"id":"CVE-2026-89713","ts":1790009090750,"field":"severity","old":"medium","new":"high"},{"seq":202814,"id":"CVE-2026-89713","ts":1789403731480,"field":"cvss","old":"9.1","new":"6.8"},{"seq":202813,"id":"CVE-2026-89713","ts":1789403731480,"field":"severity","old":"critical","new":"medium"},{"seq":197704,"id":"CVE-2026-89713","ts":1789384318479,"field":"cvss","old":"6.8","new":"9.1"},{"seq":197703,"id":"CVE-2026-89713","ts":1789384318479,"field":"severity","old":"medium","new":"critical"},{"seq":183337,"id":"CVE-2026-89713","ts":1789356674934,"field":"cvss","old":"9.1","new":"6.8"},{"seq":183336,"id":"CVE-2026-89713","ts":1789356674934,"field":"severity","old":"critical","new":"medium"},{"seq":153604,"id":"CVE-2026-89713","ts":1789285351460,"field":"cvss","old":null,"new":"9.1"},{"seq":153603,"id":"CVE-2026-89713","ts":1789285351460,"field":"severity","old":"none","new":"critical"},{"seq":147153,"id":"CVE-2026-89713","ts":1789270197353,"field":"cvss","old":null,"new":"6.8"},{"seq":147152,"id":"CVE-2026-89713","ts":1789270197353,"field":"severity","old":"none","new":"medium"},{"seq":108904,"id":"CVE-2026-89713","ts":1789183729479,"field":"cvss","old":null,"new":"6.8"},{"seq":108903,"id":"CVE-2026-89713","ts":1789183729479,"field":"severity","old":"none","new":"medium"}]}