lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ