CVE-2024-46701: libfs: fix infinite directory reads for offset dir

Published Sep 13, 2024
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

libfs: fix infinite directory reads for offset dir

After we switch tmpfs dir operations from simplediroperations to simpleoffsetdiroperations, every rename happened will fill new dentry to dest dir's maple tree(&SHMEMI(inode)->diroffsets->mt) with a free key starting with octx->newxoffset, and then set newxoffset equals to free key + 1. This will lead to infinite readdir combine with rename happened at the same time, which fail generic/736 in xfstests(detail show as below).

1. create 5000 files(1 2 3...) under one dir 2. call readdir(man 3 readdir) once, and get one entry 3. rename(entry, "TEMPFILE"), then rename("TEMPFILE", entry) 4. loop 2~3, until readdir return nothing or we loop too many times(tmpfs break test with the second condition)

We choose the same logic what commit 9b378f6ad48cf ("btrfs: fix infinite directory reads") to fix it, record the lastindex when we open dir, and do not emit the entry which index >= lastindex. The file->privatedata now used in offset dir can use directly to do this, and we also update the lastindex when we llseek the dir file.

[brauner: only update lastindex after seek when offset is zero like Jan suggested]

Affected Software

5 affected componentsFixes available
Linux Linux Kernel>=6.6<6.10.7
Linux Linux Kernel=6.11-rc1
Linux Linux Kernel=6.11-rc2
Linux Linux Kernel=6.11-rc3
debian/linux
5.10.223-15.10.234-16.1.129-16.1.135-16.12.25-16.12.27-1

Event History

Sep 13, 2024
CVE Published
via MITRE·06:27 AM
Data Sourced
via MITRE·06:27 AM
Description
Jan 9, 2025
Data Sourced
via Ubuntu·06:31 PM
RemedyDescriptionSeverityAffected Software
Feb 22, 2025
Data Sourced
via Debian·08:26 PM
DescriptionAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-46701?

CVE-2024-46701 is classified as a vulnerability in the Linux kernel affecting directory operations.

2

How do I fix CVE-2024-46701?

To fix CVE-2024-46701, upgrade the Linux kernel to a version that is patched, such as 5.10.223-1, 5.10.226-1, or 6.12.11-1.

3

Which versions of the Linux kernel are affected by CVE-2024-46701?

CVE-2024-46701 affects Linux kernel versions from 6.6 to 6.10.7 and specific release candidates 6.11-rc1, 6.11-rc2, and 6.11-rc3.

4

What type of vulnerability is CVE-2024-46701?

CVE-2024-46701 addresses an infinite directory reads issue in libfs related to the kernel directory operations.

5

Is CVE-2024-46701 a remote or local vulnerability?

CVE-2024-46701 is classified as a local vulnerability affecting filesystem operations in the Linux kernel.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203