[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025070343-CVE-2025-38172-13be@gregkh>
Date: Thu, 3 Jul 2025 10:36:28 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2025-38172: erofs: avoid using multiple devices with different type
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
erofs: avoid using multiple devices with different type
For multiple devices, both primary and extra devices should be the
same type. `erofs_init_device` has already guaranteed that if the
primary is a file-backed device, extra devices should also be
regular files.
However, if the primary is a block device while the extra device
is a file-backed device, `erofs_init_device` will get an ENOTBLK,
which is not treated as an error in `erofs_fc_get_tree`, and that
leads to an UAF:
erofs_fc_get_tree
get_tree_bdev_flags(erofs_fc_fill_super)
erofs_read_superblock
erofs_init_device // sbi->dif0 is not inited yet,
// return -ENOTBLK
deactivate_locked_super
free(sbi)
if (err is -ENOTBLK)
sbi->dif0.file = filp_open() // sbi UAF
So if -ENOTBLK is hitted in `erofs_init_device`, it means the
primary device must be a block device, and the extra device
is not a block device. The error can be converted to -EINVAL.
The Linux kernel CVE team has assigned CVE-2025-38172 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.12 with commit fb176750266a3d7f42ebdcf28e8ba40350b27847 and fixed in 6.12.34 with commit 65115472f741ca000d7ea4a5922214f93cd1516e
Issue introduced in 6.12 with commit fb176750266a3d7f42ebdcf28e8ba40350b27847 and fixed in 6.15.3 with commit cd04beb9ce2773a16057248bb4fa424068ae3807
Issue introduced in 6.12 with commit fb176750266a3d7f42ebdcf28e8ba40350b27847 and fixed in 6.16-rc1 with commit 9748f2f54f66743ac77275c34886a9f890e18409
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2025-38172
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
fs/erofs/super.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/65115472f741ca000d7ea4a5922214f93cd1516e
https://git.kernel.org/stable/c/cd04beb9ce2773a16057248bb4fa424068ae3807
https://git.kernel.org/stable/c/9748f2f54f66743ac77275c34886a9f890e18409
Powered by blists - more mailing lists