In the Linux kernel, the following vulnerability has been resolved:
fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio()
Sometimes, when a file was read while it was being truncated by another NFS client, the kernel could deadlock because folio_unlock() was called twice, and the second call would XOR back the `PG_locked` flag.
Most of the time (depending on the timing of the truncation), nobody notices the problem because folio_unlock() gets called three times, which flips `PG_locked` back off:
1. vfs_read, nfs_read_folio, ... nfs_read_add_folio, nfs_return_empty_folio 2. vfs_read, nfs_read_folio, ... netfs_read_collection, netfs_unlock_abandoned_read_pages 3. vfs_read, ... nfs_do_read_folio, nfs_read_add_folio, nfs_return_empty_folio
The problem is that nfs_read_add_folio() is not supposed to unlock the folio if fscache is enabled, and a nfs_netfs_folio_unlock() check is missing in nfs_return_empty_folio().
Rarely this leads to a warning in netfs_read_collection():
------------[ cut here ]------------ R=0000031c: folio 10 is not locked WARNING: CPU: 0 PID: 29 at fs/netfs/read_collect.c:133 netfs_read_collection+0x7c0/0xf00 [...] Workqueue: events_unbound netfs_read_collection_worker RIP: 0010:netfs_read_collection+0x7c0/0xf00 [...] Call Trace: <TASK> netfs_read_collection_worker+0x67/0x80 process_one_work+0x12e/0x2c0 worker_thread+0x295/0x3a0
Most of the time, however, processes just get stuck forever in folio_wait_bit_common(), waiting for `PG_locked` to disappear, which never happens because nobody is really holding the folio lock.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-debuginfoUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-headersUpgrade python3-perf6.12Upgrade bpftool-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-modules-extraUpgrade kernel-tools-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12Upgrade kernel6.12-debuginfoUpgrade perf6.12Upgrade kernel-libbpf-staticUpgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernel-modules-extra-commonUpgrade python3-perf6.12-debuginfoUpgrade kernel-livepatch-6.12.35-55.103Upgrade bpftoolUpgrade kernel-develUpgrade kernel-libbpf-devel | Sep 9, 2025 | Jul 10, 2025 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 11, 2025 | Jul 10, 2025 |
| Suse | — | Upgrade dtb-mediatekUpgrade kernel-default-baseUpgrade dtb-armUpgrade kernel-azure-optionalUpgrade gfs2-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-develUpgrade dtb-amdUpgrade kernel-devel-rtUpgrade reiserfs-kmp-defaultUpgrade dtb-caviumUpgrade kernel-source-vanillaUpgrade kernel-sourceUpgrade cluster-md-kmp-rtUpgrade dtb-sprdUpgrade kernel-64kb-extraUpgrade kernel-default-optionalUpgrade kernel-rt-livepatchUpgrade kernel-rt_debug-develUpgrade kernel-symsUpgrade dtb-lgUpgrade kernel-rt-develUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade dtb-allwinnerUpgrade dtb-xilinxUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-64kbUpgrade kernel-64kb-optionalUpgrade dtb-alteraUpgrade kernel-default-vdsoUpgrade dtb-exynosUpgrade dtb-renesasUpgrade dtb-hisiliconUpgrade kernel-64kb-develUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-azureUpgrade kernel-azureUpgrade kernel-defaultUpgrade dtb-nvidiaUpgrade kernel-debug-develUpgrade kernel-debug-vdsoUpgrade kernel-debugUpgrade kernel-default-livepatch-develUpgrade gfs2-kmp-azureUpgrade kselftests-kmp-azureUpgrade cluster-md-kmp-azureUpgrade kernel-rt-extraUpgrade dtb-qcomUpgrade kernel-64kbUpgrade kernel-azure-extraUpgrade dtb-marvellUpgrade dtb-amlogicUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-rtUpgrade kernel-source-rtUpgrade kernel-docs-htmlUpgrade dlm-kmp-azureUpgrade dtb-appleUpgrade kernel-kvmsmall-develUpgrade kernel-syms-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-extraUpgrade dtb-socionextUpgrade dtb-rockchipUpgrade kernel-rt-optionalUpgrade kernel-default-develUpgrade kernel-default-livepatchUpgrade kselftests-kmp-defaultUpgrade kernel-rtUpgrade gfs2-kmp-64kbUpgrade kernel-syms-azureUpgrade dtb-amazonUpgrade kernel-kvmsmall-vdsoUpgrade dtb-broadcomUpgrade kernel-rt-vdsoUpgrade kernel-obs-buildUpgrade kernel-azure-develUpgrade reiserfs-kmp-rtUpgrade kernel-rt_debugUpgrade kernel-obs-qaUpgrade kernel-macrosUpgrade kernel-default-base-rebuildUpgrade dtb-freescaleUpgrade dtb-apmUpgrade ocfs2-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-docsUpgrade kernel-azure-vdsoUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade kernel-devel-azureUpgrade reiserfs-kmp-64kb | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-6.14.0-1015-oracleUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-realtimeUpgrade linux-image-oracleUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-aws-64k-6.14Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-aws-fips-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-6.14.0-34-generic-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-azure-6.8Upgrade linux-image-generic-64k-6.14Upgrade linux-image-gke-64k-6.8Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-6.14.0-1015-awsUpgrade linux-image-oem-22.04dUpgrade linux-image-gcp-6.8Upgrade linux-image-generic-6.14Upgrade linux-image-oem-24.04cUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-xilinx-6.8Upgrade linux-image-6.14.0-1007-azure-nvidiaUpgrade linux-image-6.14.0-1018-gcp-64kUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.14.0-1014-azureUpgrade linux-image-gkeUpgrade linux-image-6.14.0-34-genericUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-realtime-6.14Upgrade linux-image-realtime-6.8.1Upgrade linux-image-awsUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-raspi-6.8Upgrade linux-image-kvmUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-gke-6.8Upgrade linux-image-virtual-6.14Upgrade linux-image-azure-6.14Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-oracle-6.14Upgrade linux-image-aws-6.14Upgrade linux-image-aws-fipsUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.14.0-1014-oemUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.14.0-1016-raspiUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-6.14Upgrade linux-image-oem-24.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-aws-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-oracle-64k-6.14Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.14.0-1018-gcpUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-6.14.0-1015-oracle-64kUpgrade linux-image-6.14.0-1014-realtimeUpgrade linux-image-oem-24.04bUpgrade linux-image-oem-22.04Upgrade linux-image-azureUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-gkeopUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-genericUpgrade linux-image-oem-22.04aUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-azure-nvidia-6.14Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-raspi-6.14Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidiaUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-fips-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-oem-24.04aUpgrade linux-image-ibm-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-64kUpgrade linux-image-ibm-classicUpgrade linux-image-gkeop-6.8Upgrade linux-image-gke-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-oracle-64kUpgrade linux-image-oem-6.14Upgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-fipsUpgrade linux-image-xilinxUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-lowlatencyUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-virtualUpgrade linux-image-6.14.0-1015-aws-64kUpgrade linux-image-aws-6.8 | Jul 14, 2025 | Jul 10, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub