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 | — | Upgrade linux | May 15, 2025 | Feb 12, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Feb 12, 2025 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1027-oracleUpgrade linux-image-6.11.0-1011-raspiUpgrade linux-image-6.8.0-1029-nvidia-lowlatencyUpgrade linux-image-azureUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1026-gkeUpgrade linux-image-6.8.0-1029-nvidiaUpgrade linux-image-oem-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-64-generic-64kUpgrade linux-image-6.8.0-62-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-6.8.0-64-genericUpgrade linux-image-6.8.0-1029-nvidia-lowlatency-64kUpgrade linux-image-6.11.0-1014-oracleUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-2024-raspi-realtimeUpgrade linux-image-6.8.0-62-lowlatency-64kUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1018-azure-nvidiaUpgrade linux-image-awsUpgrade linux-image-realtimeUpgrade linux-image-6.11.0-1012-lowlatency-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-64kUpgrade linux-image-oracleUpgrade linux-image-aws-64kUpgrade linux-image-6.11.0-24-generic-64kUpgrade linux-image-kvmUpgrade linux-image-6.11.0-1013-gcpUpgrade linux-image-6.11.0-1013-azure-fdeUpgrade linux-image-aws-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-oracle-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1030-awsUpgrade linux-image-6.11.0-1014-oracle-64kUpgrade linux-image-6.8.0-1013-gkeopUpgrade linux-image-nvidia-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-6.11.0-1020-oemUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-generic-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-virtualUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1029-oemUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1027-ibmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-gkeopUpgrade linux-image-genericUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-62-generic-64kUpgrade linux-image-ibmUpgrade linux-image-azure-nvidiaUpgrade linux-image-6.8.0-1030-aws-64kUpgrade linux-image-6.8.0-1029-nvidia-64kUpgrade linux-image-6.11.0-1013-azureUpgrade linux-image-6.8.0-1030-azure-fdeUpgrade linux-image-6.11.0-24-genericUpgrade linux-image-6.11.0-1013-gcp-64kUpgrade linux-image-6.11.0-1008-realtimeUpgrade linux-image-6.8.0-1031-gcpUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.8.0-1030-azureUpgrade linux-image-6.8.0-1027-oracle-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.1-1023-realtimeUpgrade linux-image-generic-64k-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-generic-64kUpgrade linux-image-gcpUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.11.0-1012-awsUpgrade linux-image-oem-24.04bUpgrade linux-image-ibm-classicUpgrade linux-image-generic-lpaeUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1029-raspiUpgrade linux-image-6.8.0-62-genericUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1031-gcp-64kUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.11.0-1012-lowlatency | 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