[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025072503-CVE-2025-38445-7295@gregkh>
Date: Fri, 25 Jul 2025 17:28: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-38445: md/raid1: Fix stack memory use after return in raid1_reshape
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
md/raid1: Fix stack memory use after return in raid1_reshape
In the raid1_reshape function, newpool is
allocated on the stack and assigned to conf->r1bio_pool.
This results in conf->r1bio_pool.wait.head pointing
to a stack address.
Accessing this address later can lead to a kernel panic.
Example access path:
raid1_reshape()
{
// newpool is on the stack
mempool_t newpool, oldpool;
// initialize newpool.wait.head to stack address
mempool_init(&newpool, ...);
conf->r1bio_pool = newpool;
}
raid1_read_request() or raid1_write_request()
{
alloc_r1bio()
{
mempool_alloc()
{
// if pool->alloc fails
remove_element()
{
--pool->curr_nr;
}
}
}
}
mempool_free()
{
if (pool->curr_nr < pool->min_nr) {
// pool->wait.head is a stack address
// wake_up() will try to access this invalid address
// which leads to a kernel panic
return;
wake_up(&pool->wait);
}
}
Fix:
reinit conf->r1bio_pool.wait after assigning newpool.
The Linux kernel CVE team has assigned CVE-2025-38445 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 5.4.296 with commit d8a6853d00fbaa810765c8ed2f452a5832273968
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 5.10.240 with commit 12b00ec99624f8da8c325f2dd6e807df26df0025
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 5.15.189 with commit 48da050b4f54ed639b66278d0ae6f4107b2c4e2d
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 6.1.146 with commit 5f35e48b76655e45522df338876dfef88dafcc71
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 6.6.99 with commit df5894014a92ff0196dbc212a7764e97366fd2b7
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 6.12.39 with commit 776e6186dc9ecbdb8a1b706e989166c8a99bbf64
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 6.15.7 with commit 61fd5e93006cf82ec8ee5c115ab5cf4bbd104bdb
Issue introduced in 4.18 with commit afeee514ce7f4cab605beedd03be71ebaf0c5fc8 and fixed in 6.16-rc6 with commit d67ed2ccd2d1dcfda9292c0ea8697a9d0f2f0d98
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-38445
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/md/raid1.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/d8a6853d00fbaa810765c8ed2f452a5832273968
https://git.kernel.org/stable/c/12b00ec99624f8da8c325f2dd6e807df26df0025
https://git.kernel.org/stable/c/48da050b4f54ed639b66278d0ae6f4107b2c4e2d
https://git.kernel.org/stable/c/5f35e48b76655e45522df338876dfef88dafcc71
https://git.kernel.org/stable/c/df5894014a92ff0196dbc212a7764e97366fd2b7
https://git.kernel.org/stable/c/776e6186dc9ecbdb8a1b706e989166c8a99bbf64
https://git.kernel.org/stable/c/61fd5e93006cf82ec8ee5c115ab5cf4bbd104bdb
https://git.kernel.org/stable/c/d67ed2ccd2d1dcfda9292c0ea8697a9d0f2f0d98
Powered by blists - more mailing lists