CVE-2024-42104
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
30/07/2024
Last modified:
27/08/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nilfs2: add missing check for inode numbers on directory entries<br />
<br />
Syzbot reported that mounting and unmounting a specific pattern of<br />
corrupted nilfs2 filesystem images causes a use-after-free of metadata<br />
file inodes, which triggers a kernel bug in lru_add_fn().<br />
<br />
As Jan Kara pointed out, this is because the link count of a metadata file<br />
gets corrupted to 0, and nilfs_evict_inode(), which is called from iput(),<br />
tries to delete that inode (ifile inode in this case).<br />
<br />
The inconsistency occurs because directories containing the inode numbers<br />
of these metadata files that should not be visible in the namespace are<br />
read without checking.<br />
<br />
Fix this issue by treating the inode numbers of these internal files as<br />
errors in the sanity check helper when reading directory folios/pages.<br />
<br />
Also thanks to Hillf Danton and Matthew Wilcox for their initial mm-layer<br />
analysis.
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) |
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/07c176e7acc5579c133bb923ab21316d192d0a95
- https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180
- https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf
- https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7
- https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d
- https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131
- https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458
- https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479