CVE-2024-42105: nilfs2: fix inode number range checks

Published Jul 30, 2024
·
Updated

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

nilfs2: fix inode number range checks

Patch series "nilfs2: fix potential issues related to reserved inodes".

This series fixes one use-after-free issue reported by syzbot, caused by nilfs2's internal inode being exposed in the namespace on a corrupted filesystem, and a couple of flaws that cause problems if the starting number of non-reserved inodes written in the on-disk super block is intentionally (or corruptly) changed from its default value.

This patch (of 3):

In the current implementation of nilfs2, "nilfs->nsfirstino", which gives the first non-reserved inode number, is read from the superblock, but its lower limit is not checked.

As a result, if a number that overlaps with the inode number range of reserved inodes such as the root directory or metadata files is set in the super block parameter, the inode number test macros (NILFSMDTINODE and NILFSVALIDINODE) will not function properly.

In addition, these test macros use left bit-shift calculations using with the inode number as the shift count via the BIT macro, but the result of a shift calculation that exceeds the bit width of an integer is undefined in the C specification, so if "nsfirstino" is set to a large value other than the default value NILFSUSERINO (=11), the macros may potentially malfunction depending on the environment.

Fix these issues by checking the lower bound of "nilfs->nsfirstino" and by preventing bit shifts equal to or greater than the NILFSUSERINO constant in the inode number test macros.

Also, change the type of "nsfirstino" from signed integer to unsigned integer to avoid the need for type casting in comparisons such as the lower bound check introduced this time.

Affected Software

15 affected componentsFixes available
debian/linux
5.10.223-15.10.234-16.1.129-16.1.135-16.12.25-16.12.27-1
debian/linux-6.1
6.1.129-1~deb11u1
Linux Linux kernel<4.19.318
Linux Linux kernel>=4.20<5.4.280
Linux Linux kernel>=5.5<5.10.222
Linux Linux kernel>=5.11<5.15.163
Linux Linux kernel>=5.16<6.1.98
Linux Linux kernel>=6.2<6.6.39
Linux Linux kernel>=6.7<6.9.9
Linux Linux kernel=6.10-rc1
Linux Linux kernel=6.10-rc2
Linux Linux kernel=6.10-rc3
Linux Linux kernel=6.10-rc4
Linux Linux kernel=6.10-rc5
Linux Linux kernel=6.10-rc6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 5.10.223-1Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1
  2. Upgrade

    Upgrade debian/linux-6.1 to a version that resolves this vulnerability.

    Fixed in 6.1.129-1~deb11u1
  3. Configuration

    Change the type of nilfs->ns_first_ino from a signed integer to an unsigned integer to avoid type casting in comparisons (including the lower bound check).

    nilfs2 nilfs->ns_first_ino type = unsigned integer
  4. Configuration

    Fix inode number range checks by (1) checking the lower bound of nilfs->ns_first_ino and (2) preventing bit shifts equal to or greater than the NILFS_USER_INO constant in the inode number test macros (NILFS_MDT_INODE and NILFS_VALID_INODE) so the BIT macro does not shift by a count that could exceed the integer bit width (undefined behavior).

    nilfs2 inode number test macros (NILFS_MDT_INODE / NILFS_VALID_INODE) bit-shift handling = prevent shifts >= NILFS_USER_INO

Event History

Jul 30, 2024
CVE Published
via MITRE·07:46 AM
Data Sourced
via MITRE·07:46 AM
DescriptionSeverity
Data Sourced
via NVD·08:15 AM
Description
Data Sourced
via NVD·08:15 AM
RemedySeverityWeaknessAffected Software
May 3, 2025
Data Sourced
via Ubuntu·06:22 AM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-42105?

CVE-2024-42105 has been classified as a use-after-free vulnerability that can lead to potential system instability.

2

How do I fix CVE-2024-42105?

You can fix CVE-2024-42105 by updating to the patched versions of the Linux kernel: 5.10.223-1, 5.10.226-1, 6.1.119-1, 6.1.123-1, 6.12.10-1, or 6.12.11-1.

3

Which Linux kernel versions are affected by CVE-2024-42105?

CVE-2024-42105 affects certain versions of the Linux kernel prior to the patches provided for the listed remedied versions.

4

What is nilfs2 in relation to CVE-2024-42105?

Nilfs2 is a file system in the Linux kernel implicated in the use-after-free vulnerability described in CVE-2024-42105.

5

How was CVE-2024-42105 discovered?

CVE-2024-42105 was reported by syzbot, which is a tool that helps to find vulnerabilities in kernel code.

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