CVE-2026-74365: nvdimm/btt: Handle preemption in BTT lane acquisition

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081502-CVE-2026-74365-5870@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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

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

nvdimm/btt: Handle preemption in BTT lane acquisition

BTT lanes serialize access to per-lane metadata and workspace state
during BTT I/O. The btt-check unit test reports data mismatches during
BTT writes due to a race in lane acquisition that can lead to silent
data corruption.

The existing lane model uses a spinlock together with a per-CPU
recursion count. That recursion model stopped being valid after BTT
lanes became preemptible: another task can run on the same CPU,
observe a non-zero recursion count, bypass locking, and use the same
lane concurrently.

BTT lanes are also held across arena_write_bytes() calls. That path
reaches nsio_rw_bytes(), which flushes writes with nvdimm_flush().
Some provider flush callbacks can sleep, making a spinlock the wrong
primitive for the lane lifetime.

Replace the spinlock-based recursion model with a dynamically
allocated per-lane mutex array and take the lane lock
unconditionally.

Add might_sleep() to catch any future atomic-context caller.

Found with the ndctl unit test btt-check.sh.

The Linux kernel CVE team has assigned CVE-2026-74365 to this issue.


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

	Issue introduced in 6.1.63 with commit f23859748e3d530217b197e146a9ac84faf0a282 and fixed in 6.1.178 with commit fd7a97b2514cfc4b4cc067a27dd39bde2a8b1735
	Issue introduced in 6.6.2 with commit 6f50b414f1a0d790f11a6438a3ad6d0577eb2c18 and fixed in 6.6.145 with commit 73e35c1bdfa160b41fdbe204e02325f0687de506
	Issue introduced in 6.7 with commit 36c75ce3bd299878fd9b238e9803d3817ddafbf3 and fixed in 6.12.97 with commit 417918783bcfe0be135019df16a267b3af442efd
	Issue introduced in 6.7 with commit 36c75ce3bd299878fd9b238e9803d3817ddafbf3 and fixed in 6.18.40 with commit 5c53406098b599c420b031e6ec5ba8a2f3794c50
	Issue introduced in 6.7 with commit 36c75ce3bd299878fd9b238e9803d3817ddafbf3 and fixed in 7.1.5 with commit 4eafa810b042d985ec6bbf5b514414e73cee6f6f
	Issue introduced in 6.7 with commit 36c75ce3bd299878fd9b238e9803d3817ddafbf3 and fixed in 7.2-rc1 with commit 8d4b989d9c9afe5f185aa5853b666fc4617afe9e
	Issue introduced in 4.19.299 with commit 2577fece583c7c05cda7ad50dde7638c962665e1
	Issue introduced in 5.4.261 with commit 40ba3fa21250e361bdd8f00800b3e2cb6160de95
	Issue introduced in 5.10.201 with commit b0e7a935739f33ed2bd6868b89f97dd4c2683c26
	Issue introduced in 5.15.139 with commit 66eb7b7f23dd9aec5356e7054dd3596ae7648ff5
	Issue introduced in 6.5.12 with commit b27751fb1f271bbb78d5993c0b10011628e40e18

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-2026-74365
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:
	Documentation/driver-api/nvdimm/btt.rst
	drivers/nvdimm/nd.h
	drivers/nvdimm/region_devs.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/fd7a97b2514cfc4b4cc067a27dd39bde2a8b1735
	https://git.kernel.org/stable/c/73e35c1bdfa160b41fdbe204e02325f0687de506
	https://git.kernel.org/stable/c/417918783bcfe0be135019df16a267b3af442efd
	https://git.kernel.org/stable/c/5c53406098b599c420b031e6ec5ba8a2f3794c50
	https://git.kernel.org/stable/c/4eafa810b042d985ec6bbf5b514414e73cee6f6f
	https://git.kernel.org/stable/c/8d4b989d9c9afe5f185aa5853b666fc4617afe9e
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.