Track vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
9.1

CVE-2026-89713: Linux kernel NFS server can truncate append‑only files

CVE-2026-89713 · published 1 month ago
Summary

The NFS server component in the Linux kernel could allow a file that is set to "append only" to be reduced in size under certain race conditions, potentially losing data. This occurs when the size check is done before the file lock is taken, letting another process add data first. Update to the latest kernel release where the check is performed while the file is locked, or apply the provided patches to prevent the issue.

What to do
  • Update linux kernel to version 7.2.4.
  • Update debian linux to version 7.2.6-1.
  • Update bellsoft linux-lts to version 6.18.53-r0.
  • Update debian linux to version 6.12.111-1.
  • Update bellsoft linux-lts to version 6.12.111-r0.
  • Update debian linux-6.12 to version 6.12.111-1~deb12u1.
  • Update linux linux to version 3afa17d93ba8c925f49370c816c6dae5112d8c24 or later.
Affected software
Ecosystem VendorProductAffected versions
Debian:12 debian linux All versions
– linux linux < 3afa17d93ba8c925f49370c816c6dae5112d8c24
4.11
Linux linux kernel >= 6.19.0, < 7.2.4
Fix: upgrade to 7.2.4
Debian:14 debian linux < 7.2.6-1
Fix: upgrade to 7.2.6-1
Ubuntu:Pro:14.04:LTS canonical linux All versions
Ubuntu:Pro:14.04:LTS canonical linux-aws All versions
Ubuntu:Pro:14.04:LTS canonical linux-azure All versions
Ubuntu:Pro:14.04:LTS canonical linux-lts-xenial All versions
Ubuntu:Pro:16.04:LTS canonical linux-aws-hwe All versions
Ubuntu:Pro:16.04:LTS canonical linux-gcp All versions
Ubuntu:Pro:16.04:LTS canonical linux-hwe All versions
Ubuntu:16.04:LTS canonical linux-hwe-edge All versions
Ubuntu:Pro:16.04:LTS canonical linux-kvm All versions
Ubuntu:Pro:16.04:LTS canonical linux-oracle All versions
Ubuntu:Pro:FIPS:16.04:LTS canonical linux-fips All versions
Ubuntu:18.04:LTS canonical linux-aws-5.0 All versions
Ubuntu:18.04:LTS canonical linux-aws-5.3 All versions
Ubuntu:Pro:18.04:LTS canonical linux-aws-5.4 All versions
Ubuntu:Pro:18.04:LTS canonical linux-azure-4.15 All versions
Ubuntu:18.04:LTS canonical linux-azure-5.3 All versions
Ubuntu:Pro:18.04:LTS canonical linux-azure-5.4 All versions
Ubuntu:18.04:LTS canonical linux-azure-edge All versions
Ubuntu:Pro:18.04:LTS canonical linux-gcp-4.15 All versions
Ubuntu:18.04:LTS canonical linux-gcp-5.3 All versions
Ubuntu:Pro:18.04:LTS canonical linux-gcp-5.4 All versions
Ubuntu:18.04:LTS canonical linux-gke-4.15 All versions
Ubuntu:18.04:LTS canonical linux-gke-5.4 All versions
Ubuntu:18.04:LTS canonical linux-gkeop-5.4 All versions
Ubuntu:Pro:18.04:LTS canonical linux-hwe-5.4 All versions
Ubuntu:Pro:18.04:LTS canonical linux-ibm-5.4 All versions
Ubuntu:18.04:LTS canonical linux-oem All versions
Ubuntu:18.04:LTS canonical linux-oracle-5.0 All versions
Ubuntu:18.04:LTS canonical linux-oracle-5.3 All versions
Ubuntu:Pro:18.04:LTS canonical linux-oracle-5.4 All versions
Ubuntu:Pro:18.04:LTS canonical linux-raspi-5.4 All versions
Ubuntu:Pro:FIPS-updates:18.04:LTS canonical linux-aws-fips All versions
Ubuntu:Pro:FIPS-updates:18.04:LTS canonical linux-azure-fips All versions
Ubuntu:Pro:FIPS-updates:18.04:LTS canonical linux-gcp-fips All versions
Ubuntu:20.04:LTS canonical linux-aws-5.11 All versions
Ubuntu:20.04:LTS canonical linux-aws-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-aws-5.15 All versions
Ubuntu:20.04:LTS canonical linux-aws-5.8 All versions
Ubuntu:20.04:LTS canonical linux-azure-5.11 All versions
Ubuntu:20.04:LTS canonical linux-azure-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-azure-5.15 All versions
Ubuntu:20.04:LTS canonical linux-azure-5.8 All versions
Ubuntu:20.04:LTS canonical linux-azure-fde All versions
Ubuntu:Pro:20.04:LTS canonical linux-azure-fde-5.15 All versions
Ubuntu:Pro:20.04:LTS canonical linux-bluefield All versions
Ubuntu:20.04:LTS canonical linux-gcp-5.11 All versions
Showing 50 of 177. Show the rest
Ecosystem VendorProductAffected versions
Ubuntu:20.04:LTS canonical linux-gcp-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-gcp-5.15 All versions
Ubuntu:20.04:LTS canonical linux-gcp-5.8 All versions
Ubuntu:20.04:LTS canonical linux-gke All versions
Ubuntu:20.04:LTS canonical linux-gke-5.15 All versions
Ubuntu:20.04:LTS canonical linux-gkeop All versions
Ubuntu:20.04:LTS canonical linux-gkeop-5.15 All versions
Ubuntu:20.04:LTS canonical linux-hwe-5.11 All versions
Ubuntu:20.04:LTS canonical linux-hwe-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-hwe-5.15 All versions
Ubuntu:20.04:LTS canonical linux-hwe-5.8 All versions
Ubuntu:Pro:20.04:LTS canonical linux-ibm All versions
Ubuntu:Pro:20.04:LTS canonical linux-ibm-5.15 All versions
Ubuntu:20.04:LTS canonical linux-intel-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-intel-iotg-5.15 All versions
Ubuntu:Pro:20.04:LTS canonical linux-iot All versions
Ubuntu:Pro:20.04:LTS canonical linux-lowlatency-hwe-5.15 All versions
Ubuntu:Pro:20.04:LTS canonical linux-nvidia-tegra-5.15 All versions
Ubuntu:20.04:LTS canonical linux-oem-5.10 All versions
Ubuntu:20.04:LTS canonical linux-oem-5.13 All versions
Ubuntu:20.04:LTS canonical linux-oem-5.14 All versions
Ubuntu:20.04:LTS canonical linux-oem-5.6 All versions
Ubuntu:20.04:LTS canonical linux-oracle-5.11 All versions
Ubuntu:20.04:LTS canonical linux-oracle-5.13 All versions
Ubuntu:Pro:20.04:LTS canonical linux-oracle-5.15 All versions
Ubuntu:20.04:LTS canonical linux-oracle-5.8 All versions
Ubuntu:Pro:20.04:LTS canonical linux-raspi All versions
Ubuntu:20.04:LTS canonical linux-raspi2 All versions
Ubuntu:20.04:LTS canonical linux-riscv All versions
Ubuntu:20.04:LTS canonical linux-riscv-5.11 All versions
Ubuntu:Pro:20.04:LTS canonical linux-riscv-5.15 All versions
Ubuntu:20.04:LTS canonical linux-riscv-5.8 All versions
Ubuntu:Pro:20.04:LTS canonical linux-xilinx-zynqmp All versions
Ubuntu:22.04:LTS canonical linux-allwinner-5.19 All versions
Ubuntu:22.04:LTS canonical linux-aws-5.19 All versions
Ubuntu:22.04:LTS canonical linux-aws-6.2 All versions
Ubuntu:22.04:LTS canonical linux-aws-6.5 All versions
Ubuntu:22.04:LTS canonical linux-aws-6.8 All versions
Ubuntu:22.04:LTS canonical linux-azure-5.19 All versions
Ubuntu:22.04:LTS canonical linux-azure-6.2 All versions
Ubuntu:22.04:LTS canonical linux-azure-6.5 All versions
Ubuntu:22.04:LTS canonical linux-azure-6.8 All versions
Ubuntu:22.04:LTS canonical linux-azure-fde-5.19 All versions
Ubuntu:22.04:LTS canonical linux-azure-fde-6.2 All versions
Ubuntu:22.04:LTS canonical linux-azure-fde-6.8 All versions
Ubuntu:22.04:LTS canonical linux-gcp-5.19 All versions
Ubuntu:22.04:LTS canonical linux-gcp-6.2 All versions
Ubuntu:22.04:LTS canonical linux-gcp-6.5 All versions
Ubuntu:22.04:LTS canonical linux-gcp-6.8 All versions
Ubuntu:22.04:LTS canonical linux-hwe-5.19 All versions
Ubuntu:22.04:LTS canonical linux-hwe-6.2 All versions
Ubuntu:22.04:LTS canonical linux-hwe-6.5 All versions
Ubuntu:22.04:LTS canonical linux-hwe-6.8 All versions
Ubuntu:22.04:LTS canonical linux-ibm-6.8 All versions
Ubuntu:22.04:LTS canonical linux-intel-iot-realtime All versions
Ubuntu:22.04:LTS canonical linux-intel-iotg All versions
Ubuntu:22.04:LTS canonical linux-lowlatency All versions
Ubuntu:22.04:LTS canonical linux-lowlatency-hwe-5.19 All versions
Ubuntu:22.04:LTS canonical linux-lowlatency-hwe-6.2 All versions
Ubuntu:22.04:LTS canonical linux-lowlatency-hwe-6.5 All versions
Ubuntu:22.04:LTS canonical linux-lowlatency-hwe-6.8 All versions
Ubuntu:22.04:LTS canonical linux-nvidia All versions
Ubuntu:22.04:LTS canonical linux-nvidia-6.2 All versions
Ubuntu:22.04:LTS canonical linux-nvidia-6.5 All versions
Ubuntu:22.04:LTS canonical linux-nvidia-6.8 All versions
Ubuntu:22.04:LTS canonical linux-nvidia-tegra All versions
Ubuntu:22.04:LTS canonical linux-nvidia-tegra-igx All versions
Ubuntu:22.04:LTS canonical linux-oem-5.17 All versions
Ubuntu:22.04:LTS canonical linux-oem-6.0 All versions
Ubuntu:22.04:LTS canonical linux-oem-6.1 All versions
Ubuntu:22.04:LTS canonical linux-oem-6.5 All versions
Ubuntu:22.04:LTS canonical linux-oracle-6.5 All versions
Ubuntu:22.04:LTS canonical linux-oracle-6.8 All versions
Ubuntu:22.04:LTS canonical linux-realtime All versions
Ubuntu:22.04:LTS canonical linux-riscv-5.19 All versions
Ubuntu:22.04:LTS canonical linux-riscv-6.5 All versions
Ubuntu:22.04:LTS canonical linux-riscv-6.8 All versions
Ubuntu:22.04:LTS canonical linux-starfive-5.19 All versions
Ubuntu:22.04:LTS canonical linux-starfive-6.2 All versions
Ubuntu:22.04:LTS canonical linux-starfive-6.5 All versions
Ubuntu:Pro:Realtime:22.04:LTS canonical linux-realtime-6.8 All versions
Ubuntu:24.04:LTS canonical linux-aws-6.14 All versions
Ubuntu:24.04:LTS canonical linux-aws-6.17 All versions
Ubuntu:24.04:LTS canonical linux-aws-7.0 All versions
Ubuntu:24.04:LTS canonical linux-azure-6.11 All versions
Ubuntu:24.04:LTS canonical linux-azure-6.14 All versions
Ubuntu:24.04:LTS canonical linux-azure-6.17 All versions
Ubuntu:24.04:LTS canonical linux-azure-7.0 All versions
Ubuntu:24.04:LTS canonical linux-azure-fde-6.14 All versions
Ubuntu:24.04:LTS canonical linux-azure-fde-6.17 All versions
Ubuntu:24.04:LTS canonical linux-azure-fde-7.0 All versions
Ubuntu:24.04:LTS canonical linux-azure-nvidia All versions
Ubuntu:24.04:LTS canonical linux-azure-nvidia-6.14 All versions
Ubuntu:24.04:LTS canonical linux-gcp-6.11 All versions
Ubuntu:24.04:LTS canonical linux-gcp-6.14 All versions
Ubuntu:24.04:LTS canonical linux-gcp-6.17 All versions
Ubuntu:24.04:LTS canonical linux-gcp-7.0 All versions
Ubuntu:24.04:LTS canonical linux-hwe-6.11 All versions
Ubuntu:24.04:LTS canonical linux-hwe-6.14 All versions
Ubuntu:24.04:LTS canonical linux-hwe-6.17 All versions
Ubuntu:24.04:LTS canonical linux-hwe-7.0 All versions
Ubuntu:24.04:LTS canonical linux-lowlatency-hwe-6.11 All versions
Ubuntu:24.04:LTS canonical linux-nvidia-6.11 All versions
Ubuntu:24.04:LTS canonical linux-nvidia-6.17 All versions
Ubuntu:24.04:LTS canonical linux-nvidia-7.0 All versions
Ubuntu:24.04:LTS canonical linux-nvidia-lowlatency All versions
Ubuntu:24.04:LTS canonical linux-oem-6.11 All versions
Ubuntu:24.04:LTS canonical linux-oem-6.14 All versions
Ubuntu:24.04:LTS canonical linux-oem-6.17 All versions
Ubuntu:24.04:LTS canonical linux-oem-6.8 All versions
Ubuntu:24.04:LTS canonical linux-oracle-6.14 All versions
Ubuntu:24.04:LTS canonical linux-oracle-6.17 All versions
Ubuntu:24.04:LTS canonical linux-oracle-7.0 All versions
Ubuntu:24.04:LTS canonical linux-raspi-realtime All versions
Ubuntu:24.04:LTS canonical linux-riscv-6.14 All versions
Ubuntu:24.04:LTS canonical linux-riscv-6.17 All versions
Ubuntu:24.04:LTS canonical linux-riscv-7.0 All versions
Ubuntu:24.04:LTS canonical linux-xilinx All versions
Ubuntu:Pro:Realtime:24.04:LTS canonical linux-realtime-6.14 All versions
Ubuntu:Pro:Realtime:24.04:LTS canonical linux-realtime-6.17 All versions
Ubuntu:26.04:LTS canonical linux-nvidia-bos All versions
Ubuntu:26.04:LTS canonical linux-oem-7.0 All versions
Alpaquita:23 bellsoft linux-lts >= 6.1.182-r0
Alpaquita:25 bellsoft linux-lts >= 6.12.103-r0
>= 6.12.103-r0, < 6.12.111-r0
Fix: upgrade to 6.12.111-r0
Alpaquita:stream bellsoft linux-lts >= 6.18.46-r0
>= 6.18.46-r0, < 6.18.53-r0
Fix: upgrade to 6.18.53-r0
Debian:13 debian linux < 6.12.111-1
Fix: upgrade to 6.12.111-1
Debian:12 debian linux-6.12 < 6.12.111-1~deb12u1
Fix: upgrade to 6.12.111-1~deb12u1
Original advisory text
NFSD: check truncate permission under inode lock
In the Linux kernel, the following vulnerability has been resolved:

NFSD: check truncate permission under inode lock

nfsd_setattr() checks whether a size update needs NFSD_MAY_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 inode_lock() by notify_change().

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 inode_lock(). notify_change() then applies a real truncation
without the NFSD_MAY_TRUNC 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 get_write_access() before the locked setattr work, then recheck
whether the requested size is below i_size_read(inode) after inode_lock()
has been acquired and before notify_change(ATTR_SIZE). This also avoids
the plain unlocked inode->i_size load.
Severity
9.1 Critical
Exploitation
<1% chance of attack within 30 days
Timeline
Published11 Sep 2026
Updated11 Oct 2026
First seen11 Sep 2026
Track software like this
Free during beta