CVE-2024-42104CWE-416

CVE-2024-42104

High · published July 30, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
16.8
In the wild
Unconfirmed
What it is

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

nilfs2: add missing check for inode numbers on directory entries

Syzbot reported that mounting and unmounting a specific pattern of

corrupted nilfs2 filesystem images causes a use-after-free of metadata

file inodes, which triggers a kernel bug in lru_add_fn().

As Jan Kara pointed out, this is because the link count of a metadata file

gets corrupted to 0, and nilfs_evict_inode(), which is called from iput(),

tries to delete that inode (ifile inode in this case).

The inconsistency occurs because directories containing the inode numbers

of these metadata files that should not be visible in the namespace are

read without checking.

Fix this issue by treating the inode numbers of these internal files as

errors in the sanity check helper when reading directory folios/pages.

Also thanks to Hillf Danton and Matthew Wilcox for their initial mm-layer

analysis.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00260 · 16.8th percentile
Weakness
CWE-416 · Use After Free
Published
2024-07-30T12:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel< 4.19.3184.19.318
linux/linux_kernel≥ 4.20, < 5.4.2805.4.280
linux/linux_kernel≥ 5.5, < 5.10.2225.10.222
linux/linux_kernel≥ 5.11, < 5.15.1635.15.163
linux/linux_kernel≥ 5.16, < 6.1.986.1.98
linux/linux_kernel≥ 6.2, < 6.6.396.6.39
linux/linux_kernel≥ 6.7, < 6.9.96.9.9
References (17)
https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/07c176e7acc5579c133bb923ab21316d192d0a95 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/1b7d549ed2c1fa202c751b69423a0d3a6bd5a180 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/265fff1a01cdc083aeaf0d934c929db5cc64aebf · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/2f2fa9cf7c3537958a82fbe8c8595a5eb0861ad7 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/3ab40870edb883b9633dc5cd55f5a2a11afa618d · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b11e8fb93ea5eefb2e4e719497ea177a58ff6131 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/bb76c6c274683c8570ad788f79d4b875bde0e458 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/c33c2b0d92aa1c2262d999b2598ad6fbd53bd479 · af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html · af854a3a-2127-422b-91ae-364da2661108
EPSS history
Timeline
  • 30 JUL 07:46Z
    nilfs2: add missing check for inode numbers on directory entries
    cvelistv5