{"id":"CVE-2025-38445","state":"PUBLISHED","title":"md/raid1: Fix stack memory use after return in raid1_reshape","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid1: Fix stack memory use after return in raid1_reshape\n\nIn the raid1_reshape function, newpool is\nallocated on the stack and assigned to conf->r1bio_pool.\nThis results in conf->r1bio_pool.wait.head pointing\nto a stack address.\nAccessing this address later can lead to a kernel panic.\n\nExample access path:\n\nraid1_reshape()\n{\n\t// newpool is on the stack\n\tmempool_t newpool, oldpool;\n\t// initialize newpool.wait.head to stack address\n\tmempool_init(&newpool, ...);\n\tconf->r1bio_pool = newpool;\n}\n\nraid1_read_request() or raid1_write_request()\n{\n\talloc_r1bio()\n\t{\n\t\tmempool_alloc()\n\t\t{\n\t\t\t// if pool->alloc fails\n\t\t\tremove_element()\n\t\t\t{\n\t\t\t\t--pool->curr_nr;\n\t\t\t}\n\t\t}\n\t}\n}\n\nmempool_free()\n{\n\tif (pool->curr_nr < pool->min_nr) {\n\t\t// pool->wait.head is a stack address\n\t\t// wake_up() will try to access this invalid address\n\t\t// which leads to a kernel panic\n\t\treturn;\n\t\twake_up(&pool->wait);\n\t}\n}\n\nFix:\nreinit conf->r1bio_pool.wait after assigning newpool.","publishedAt":"2025-07-25T15:27:28.035Z","updatedAt":"2026-05-11T21:28:08.626Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"d8a6853d00fbaa810765c8ed2f452a5832273968","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"12b00ec99624f8da8c325f2dd6e807df26df0025","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"48da050b4f54ed639b66278d0ae6f4107b2c4e2d","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"5f35e48b76655e45522df338876dfef88dafcc71","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"df5894014a92ff0196dbc212a7764e97366fd2b7","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"776e6186dc9ecbdb8a1b706e989166c8a99bbf64","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"61fd5e93006cf82ec8ee5c115ab5cf4bbd104bdb","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"d67ed2ccd2d1dcfda9292c0ea8697a9d0f2f0d98","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid1.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.18","versionType":"semver"},{"version":"5.4.296","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.240","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.189","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.146","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.99","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.39","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.7","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid1.c"]}],"references":["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","https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html","https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38445.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38445","state":"PUBLISHED","datePublished":"2025-07-25T15:27:28.035Z","dateUpdated":"2026-05-11T21:28:08.626Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.017Z"},"containers":{"cna":{"title":"md/raid1: Fix stack memory use after return in raid1_reshape","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid1: Fix stack memory use after return in raid1_reshape\n\nIn the raid1_reshape function, newpool is\nallocated on the stack and assigned to conf->r1bio_pool.\nThis results in conf->r1bio_pool.wait.head pointing\nto a stack address.\nAccessing this address later can lead to a kernel panic.\n\nExample access path:\n\nraid1_reshape()\n{\n\t// newpool is on the stack\n\tmempool_t newpool, oldpool;\n\t// initialize newpool.wait.head to stack address\n\tmempool_init(&newpool, ...);\n\tconf->r1bio_pool = newpool;\n}\n\nraid1_read_request() or raid1_write_request()\n{\n\talloc_r1bio()\n\t{\n\t\tmempool_alloc()\n\t\t{\n\t\t\t// if pool->alloc fails\n\t\t\tremove_element()\n\t\t\t{\n\t\t\t\t--pool->curr_nr;\n\t\t\t}\n\t\t}\n\t}\n}\n\nmempool_free()\n{\n\tif (pool->curr_nr < pool->min_nr) {\n\t\t// pool->wait.head is a stack address\n\t\t// wake_up() will try to access this invalid address\n\t\t// which leads to a kernel panic\n\t\treturn;\n\t\twake_up(&pool->wait);\n\t}\n}\n\nFix:\nreinit conf->r1bio_pool.wait after assigning newpool."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"d8a6853d00fbaa810765c8ed2f452a5832273968","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"12b00ec99624f8da8c325f2dd6e807df26df0025","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"48da050b4f54ed639b66278d0ae6f4107b2c4e2d","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"5f35e48b76655e45522df338876dfef88dafcc71","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"df5894014a92ff0196dbc212a7764e97366fd2b7","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"776e6186dc9ecbdb8a1b706e989166c8a99bbf64","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"61fd5e93006cf82ec8ee5c115ab5cf4bbd104bdb","versionType":"git"},{"version":"afeee514ce7f4cab605beedd03be71ebaf0c5fc8","status":"affected","lessThan":"d67ed2ccd2d1dcfda9292c0ea8697a9d0f2f0d98","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid1.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.18","versionType":"semver"},{"version":"5.4.296","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.240","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.189","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.146","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.99","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.39","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.7","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid1.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d8a6853d00fbaa810765c8ed2f452a5832273968"},{"url":"https://git.kernel.org/stable/c/12b00ec99624f8da8c325f2dd6e807df26df0025"},{"url":"https://git.kernel.org/stable/c/48da050b4f54ed639b66278d0ae6f4107b2c4e2d"},{"url":"https://git.kernel.org/stable/c/5f35e48b76655e45522df338876dfef88dafcc71"},{"url":"https://git.kernel.org/stable/c/df5894014a92ff0196dbc212a7764e97366fd2b7"},{"url":"https://git.kernel.org/stable/c/776e6186dc9ecbdb8a1b706e989166c8a99bbf64"},{"url":"https://git.kernel.org/stable/c/61fd5e93006cf82ec8ee5c115ab5cf4bbd104bdb"},{"url":"https://git.kernel.org/stable/c/d67ed2ccd2d1dcfda9292c0ea8697a9d0f2f0d98"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:28:08.626Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"5.4.296"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"5.10.240"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"5.15.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"6.1.146"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"6.6.99"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"6.12.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"6.15.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.18","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T17:38:07.560Z"}}]}}}