CVE-2024-42105
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
30/07/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nilfs2: fix inode number range checks<br />
<br />
Patch series "nilfs2: fix potential issues related to reserved inodes".<br />
<br />
This series fixes one use-after-free issue reported by syzbot, caused by<br />
nilfs2&#39;s internal inode being exposed in the namespace on a corrupted<br />
filesystem, and a couple of flaws that cause problems if the starting<br />
number of non-reserved inodes written in the on-disk super block is<br />
intentionally (or corruptly) changed from its default value. <br />
<br />
<br />
This patch (of 3):<br />
<br />
In the current implementation of nilfs2, "nilfs->ns_first_ino", which<br />
gives the first non-reserved inode number, is read from the superblock,<br />
but its lower limit is not checked.<br />
<br />
As a result, if a number that overlaps with the inode number range of<br />
reserved inodes such as the root directory or metadata files is set in the<br />
super block parameter, the inode number test macros (NILFS_MDT_INODE and<br />
NILFS_VALID_INODE) will not function properly.<br />
<br />
In addition, these test macros use left bit-shift calculations using with<br />
the inode number as the shift count via the BIT macro, but the result of a<br />
shift calculation that exceeds the bit width of an integer is undefined in<br />
the C specification, so if "ns_first_ino" is set to a large value other<br />
than the default value NILFS_USER_INO (=11), the macros may potentially<br />
malfunction depending on the environment.<br />
<br />
Fix these issues by checking the lower bound of "nilfs->ns_first_ino" and<br />
by preventing bit shifts equal to or greater than the NILFS_USER_INO<br />
constant in the inode number test macros.<br />
<br />
Also, change the type of "ns_first_ino" from signed integer to unsigned<br />
integer to avoid the need for type casting in comparisons such as the<br />
lower bound check introduced this time.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.19.318 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.280 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.222 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.163 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.98 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.39 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/08cab183a624ba71603f3754643ae11cab34dbc4
- https://git.kernel.org/stable/c/1c91058425a01131ea30dda6cf43c67b17884d6a
- https://git.kernel.org/stable/c/3be4dcc8d7bea52ea41f87aa4bbf959efe7a5987
- https://git.kernel.org/stable/c/57235c3c88bb430043728d0d02f44a4efe386476
- https://git.kernel.org/stable/c/731011ac6c37cbe97ece229fc6daa486276052c5
- https://git.kernel.org/stable/c/9194f8ca57527958bee207919458e372d638d783
- https://git.kernel.org/stable/c/e2fec219a36e0993642844be0f345513507031f4
- https://git.kernel.org/stable/c/fae1959d6ab2c52677b113935e36ab4e25df37ea
- https://git.kernel.org/stable/c/08cab183a624ba71603f3754643ae11cab34dbc4
- https://git.kernel.org/stable/c/1c91058425a01131ea30dda6cf43c67b17884d6a
- https://git.kernel.org/stable/c/3be4dcc8d7bea52ea41f87aa4bbf959efe7a5987
- https://git.kernel.org/stable/c/57235c3c88bb430043728d0d02f44a4efe386476
- https://git.kernel.org/stable/c/731011ac6c37cbe97ece229fc6daa486276052c5
- https://git.kernel.org/stable/c/9194f8ca57527958bee207919458e372d638d783
- https://git.kernel.org/stable/c/e2fec219a36e0993642844be0f345513507031f4
- https://git.kernel.org/stable/c/fae1959d6ab2c52677b113935e36ab4e25df37ea
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



