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 for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025061839-CVE-2025-38072-a259@gregkh>
Date: Wed, 18 Jun 2025 11:34:07 +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-38072: libnvdimm/labels: Fix divide error in nd_label_data_init()

From: Greg Kroah-Hartman <gregkh@...nel.org>

Description
===========

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

libnvdimm/labels: Fix divide error in nd_label_data_init()

If a faulty CXL memory device returns a broken zero LSA size in its
memory device information (Identify Memory Device (Opcode 4000h), CXL
spec. 3.1, 8.2.9.9.1.1), a divide error occurs in the libnvdimm
driver:

 Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI
 RIP: 0010:nd_label_data_init+0x10e/0x800 [libnvdimm]

Code and flow:

1) CXL Command 4000h returns LSA size = 0
2) config_size is assigned to zero LSA size (CXL pmem driver):

drivers/cxl/pmem.c:             .config_size = mds->lsa_size,

3) max_xfer is set to zero (nvdimm driver):

drivers/nvdimm/label.c: max_xfer = min_t(size_t, ndd->nsarea.max_xfer, config_size);

4) A subsequent DIV_ROUND_UP() causes a division by zero:

drivers/nvdimm/label.c: /* Make our initial read size a multiple of max_xfer size */
drivers/nvdimm/label.c: read_size = min(DIV_ROUND_UP(read_size, max_xfer) * max_xfer,
drivers/nvdimm/label.c-                 config_size);

Fix this by checking the config size parameter by extending an
existing check.

The Linux kernel CVE team has assigned CVE-2025-38072 to this issue.


Affected and fixed versions
===========================

	Fixed in 5.4.294 with commit 2bd4a938d2eda96ab7288b8fa5aae84a1de8c4ca
	Fixed in 5.10.238 with commit 396c46d3f59a18ebcc500640e749f16e197d472b
	Fixed in 5.15.185 with commit f49c337037df029440a8390380dd35d2cf5924d3
	Fixed in 6.1.141 with commit db1aef51b8e66a77f76b1250b914589c31a0a0ed
	Fixed in 6.6.93 with commit ea3d95e05e97ea20fd6513f647393add16fce3b2
	Fixed in 6.12.31 with commit 1d1e1efad1cf049e888bf175a5c6be85d792620c
	Fixed in 6.14.9 with commit e14347f647ca6d76fe1509b6703e340f2d5e2716
	Fixed in 6.15 with commit ef1d3455bbc1922f94a91ed58d3d7db440652959

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-38072
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:
	drivers/nvdimm/label.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/2bd4a938d2eda96ab7288b8fa5aae84a1de8c4ca
	https://git.kernel.org/stable/c/396c46d3f59a18ebcc500640e749f16e197d472b
	https://git.kernel.org/stable/c/f49c337037df029440a8390380dd35d2cf5924d3
	https://git.kernel.org/stable/c/db1aef51b8e66a77f76b1250b914589c31a0a0ed
	https://git.kernel.org/stable/c/ea3d95e05e97ea20fd6513f647393add16fce3b2
	https://git.kernel.org/stable/c/1d1e1efad1cf049e888bf175a5c6be85d792620c
	https://git.kernel.org/stable/c/e14347f647ca6d76fe1509b6703e340f2d5e2716
	https://git.kernel.org/stable/c/ef1d3455bbc1922f94a91ed58d3d7db440652959

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ