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-staticUpgrade kernel6.12-debuginfoUpgrade kernel-develUpgrade bpftoolUpgrade kernel-libbpf-develUpgrade python3-perf6.12-debuginfoUpgrade perf6.12Upgrade kernel-livepatch-6.12.35-55.103Upgrade kernel-toolsUpgrade kernel-tools-develUpgrade kernel-modules-extra-commonUpgrade perf6.12-debuginfoUpgrade kernel6.12Upgrade kernel-headersUpgrade kernel-libbpf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel6.12-modules-extraUpgrade kernel-libbpfUpgrade kernel-tools-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade python3-perf6.12Upgrade kernel6.12-debuginfo-common-aarch64 | 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 kernel-64kb-extraUpgrade dtb-allwinnerUpgrade kernel-source-vanillaUpgrade dtb-sprdUpgrade kernel-develUpgrade dtb-caviumUpgrade kernel-symsUpgrade kernel-rt-develUpgrade kernel-default-livepatch-develUpgrade gfs2-kmp-azureUpgrade kernel-rt_debug-develUpgrade kernel-sourceUpgrade cluster-md-kmp-rtUpgrade kernel-source-azureUpgrade kernel-defaultUpgrade kernel-azureUpgrade dtb-xilinxUpgrade kernel-default-optionalUpgrade kernel-default-vdsoUpgrade dlm-kmp-rtUpgrade kernel-64kb-optionalUpgrade dtb-exynosUpgrade reiserfs-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade dtb-amdUpgrade dtb-renesasUpgrade dtb-hisiliconUpgrade kselftests-kmp-64kbUpgrade dtb-alteraUpgrade ocfs2-kmp-azureUpgrade dtb-mediatekUpgrade ocfs2-kmp-defaultUpgrade dlm-kmp-64kbUpgrade kernel-64kb-develUpgrade reiserfs-kmp-defaultUpgrade kernel-azure-optionalUpgrade dtb-nvidiaUpgrade kernel-default-baseUpgrade dtb-lgUpgrade kernel-devel-rtUpgrade kernel-debugUpgrade gfs2-kmp-defaultUpgrade kernel-debug-develUpgrade kernel-debug-vdsoUpgrade dtb-armUpgrade kernel-rt-livepatchUpgrade kernel-macrosUpgrade kselftests-kmp-defaultUpgrade kernel-rtUpgrade kernel-default-livepatchUpgrade kernel-obs-buildUpgrade kernel-azure-develUpgrade dtb-appleUpgrade kernel-rt-vdsoUpgrade kernel-devel-azureUpgrade gfs2-kmp-rtUpgrade kernel-64kbUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-64kbUpgrade dtb-rockchipUpgrade kernel-rt_debug-vdsoUpgrade dtb-amazonUpgrade kernel-rt_debugUpgrade kernel-zfcpdumpUpgrade kernel-rt-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-docsUpgrade kernel-azure-vdsoUpgrade dlm-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-azure-extraUpgrade dtb-marvellUpgrade dtb-freescaleUpgrade dtb-apmUpgrade dtb-amlogicUpgrade dlm-kmp-azureUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-rtUpgrade kernel-source-rtUpgrade kernel-rt-extraUpgrade kernel-kvmsmall-vdsoUpgrade dtb-qcomUpgrade dtb-broadcomUpgrade cluster-md-kmp-azureUpgrade kselftests-kmp-azureUpgrade kernel-syms-azureUpgrade kernel-rt-optionalUpgrade kernel-default-develUpgrade gfs2-kmp-64kbUpgrade kernel-kvmsmall-develUpgrade kernel-default-extraUpgrade kernel-default-base-rebuildUpgrade dtb-socionextUpgrade reiserfs-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-obs-qa | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-aws-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-raspi-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-1016-raspiUpgrade linux-image-gke-64k-6.8Upgrade linux-image-gkeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-oracle-6.8Upgrade linux-image-realtime-6.14Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.14.0-1014-azureUpgrade linux-image-virtual-6.8Upgrade linux-image-azure-6.8Upgrade linux-image-6.14.0-1007-azure-nvidiaUpgrade linux-image-realtimeUpgrade linux-image-generic-64k-6.14Upgrade linux-image-6.14.0-1018-gcp-64kUpgrade linux-image-6.14.0-1015-oracleUpgrade linux-image-6.14.0-34-generic-64kUpgrade linux-image-kvmUpgrade linux-image-oracleUpgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-oem-22.04dUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-6.14Upgrade linux-image-aws-fips-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-intel-iotgUpgrade linux-image-generic-6.14Upgrade linux-image-6.14.0-1015-awsUpgrade linux-image-gcp-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-gcp-6.14Upgrade linux-image-oem-24.04cUpgrade linux-image-raspiUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-aws-64k-6.14Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-oracle-6.14Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-nvidia-64kUpgrade linux-image-aws-6.14Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-oem-24.04Upgrade linux-image-virtual-6.14Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-awsUpgrade linux-image-6.14.0-34-genericUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-aws-lts-24.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.14.0-1014-oemUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-raspi-realtimeUpgrade linux-image-azure-lts-24.04Upgrade linux-image-oracle-64k-6.14Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gkeopUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-oem-22.04Upgrade linux-image-6.14.0-1014-realtimeUpgrade linux-image-azureUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-oem-24.04bUpgrade linux-image-6.14.0-1015-oracle-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-xilinxUpgrade linux-image-generic-64k-6.8Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-fipsUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-fips-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-generic-6.8Upgrade linux-image-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gcpUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.14.0-1018-gcpUpgrade linux-image-virtualUpgrade linux-image-6.14.0-1015-aws-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-raspi-6.14Upgrade linux-image-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-6.14Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-oracle-64kUpgrade linux-image-ibm-classicUpgrade linux-image-gkeop-6.8Upgrade linux-image-gke-64kUpgrade linux-image-azure-fips-6.8Upgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-genericUpgrade linux-image-azure-nvidia-6.14 | 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