In the Linux kernel, the following vulnerability has been resolved:
Revert "libfs: fix infinite directory reads for offset dir"
The current directory offset allocator (based on mtree_alloc_cyclic) stores the next offset value to return in octx->next_offset. This mechanism typically returns values that increase monotonically over time. Eventually, though, the newly allocated offset value wraps back to a low number (say, 2) which is smaller than other already- allocated offset values.
Yu Kuai <[email protected]> reports that, after commit 64a7ce76fb90 ("libfs: fix infinite directory reads for offset dir"), if a directory's offset allocator wraps, existing entries are no longer visible via readdir/getdents because offset_readdir() stops listing entries once an entry's offset is larger than octx->next_offset. These entries vanish persistently -- they can be looked up, but will never again appear in readdir(3) output.
The reason for this is that the commit treats directory offsets as monotonically increasing integer values rather than opaque cookies, and introduces this comparison:
if (dentry2offset(dentry) >= last_index) {
On 64-bit platforms, the directory offset value upper bound is 2^63 - 1. Directory offsets will monotonically increase for millions of years without wrapping.
On 32-bit platforms, however, LONG_MAX is 2^31 - 1. The allocator can wrap after only a few weeks (at worst).
Revert commit 64a7ce76fb90 ("libfs: fix infinite directory reads for offset dir") to prepare for a fix that can work properly on 32-bit systems and might apply to recent LTS kernels where shmem employs the simple_offset mechanism.
CVSS Details
- CVSS 3.1 Base Score: 7.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | No solution existsUpgrade linux | May 15, 2025 | Feb 12, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Feb 12, 2025 |
| Ubuntu | — | Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1031-gcp-64kUpgrade linux-image-6.11.0-1012-awsUpgrade linux-image-6.8.0-1029-raspiUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-ibm-classicUpgrade linux-image-raspi-realtimeUpgrade linux-image-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-gkeop-6.8Upgrade linux-image-oem-24.04bUpgrade linux-image-generic-64k-6.8Upgrade linux-image-genericUpgrade linux-image-6.8.0-1029-nvidia-64kUpgrade linux-image-azure-nvidiaUpgrade linux-image-ibmUpgrade linux-image-6.11.0-24-genericUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-oem-22.04Upgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1031-gcpUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-62-genericUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.11.0-1013-gcp-64kUpgrade linux-image-6.8.0-62-generic-64kUpgrade linux-image-6.11.0-1013-azureUpgrade linux-image-6.11.0-1008-realtimeUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1030-aws-64kUpgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.8.0-1030-azure-fdeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1027-ibmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1030-azureUpgrade linux-image-6.8.1-1023-realtimeUpgrade linux-image-virtualUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1029-oemUpgrade linux-image-6.11.0-1012-lowlatencyUpgrade linux-image-6.8.0-1027-oracle-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1029-nvidia-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-gcp-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-azureUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1026-gkeUpgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1029-nvidiaUpgrade linux-image-6.8.0-64-genericUpgrade linux-image-6.11.0-1012-lowlatency-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-raspiUpgrade linux-image-6.8.0-2024-raspi-realtimeUpgrade linux-image-6.11.0-1014-oracle-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-62-lowlatencyUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-1027-oracleUpgrade linux-image-6.8.0-62-lowlatency-64kUpgrade linux-image-6.8.0-1029-nvidia-lowlatency-64kUpgrade linux-image-6.11.0-1020-oemUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-nvidia-64kUpgrade linux-image-awsUpgrade linux-image-nvidia-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.11.0-1013-azure-fdeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1030-awsUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1013-gkeopUpgrade linux-image-6.11.0-1013-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-aws-64kUpgrade linux-image-6.11.0-1011-raspiUpgrade linux-image-realtimeUpgrade linux-image-6.11.0-24-generic-64kUpgrade linux-image-6.8.0-1018-azure-nvidiaUpgrade linux-image-6.11.0-1014-oracle | Apr 24, 2025 | Feb 12, 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