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

md/raid1: don't set array_frozen in raid1_takeover()

raid1_takeover() sets conf->array_frozen = 1 on the newly-allocated
r1conf and nothing ever clears it, so every I/O to the array stalls
permanently once _wait_barrier() sees it stuck at 1.

This used to be harmless: level_store() called mddev_resume() right
after pers->run(), which called raid1_quiesce(mddev, 0) and cleared
array_frozen back to 0 regardless of what raid1_takeover() set. Commit
b39f35ebe86d ("md: don't quiesce in mddev_suspend()") removed that
quiesce(mddev, 0) call, so the pre-set now sticks.

setup_conf() already zero-initializes the new r1conf via kzalloc, so
just don't set array_frozen here.

Same class of bug as commit 892da88d1cd9 ("md/raid10: fix a
'conf->barrier' leakage in raid10_takeover()"), also triggered by
b39f35ebe86d.
Published: 2026-09-17
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability lies in the Linux kernel's raid1_takeover() function, where the array_frozen flag is set to 1 on a newly allocated r1conf and never cleared. Earlier code would clear this flag via mddev_resume, but a recent commit removed that cleanup, causing any I/O to the affected RAID1 array to stall permanently. The result is a denial of service for the entire storage system because all read and write operations cease until the kernel is rebooted or the flag is manually reset.

Affected Systems

This defect affects all Linux kernel releases that include the commit that removed the quiesce call from mddev_suspend and subsequently introduced the buggy raid1_takeover logic. In practice, any system running a kernel version that contains these changes—typically kernel releases after the commit b39f35ebe86d—could be impacted. The exact range of affected kernel releases should be confirmed against the commit history for a specific environment.

Risk and Exploitability

The EPSS score is less than 1%, indicating a very low yet non‑zero exploitation probability. The vulnerability is not listed in CISA KEV. Exploitation requires the ability to perform a raid1 takeover, a privileged operation normally restricted to system administrators or automated management tools. Once executed, the attack will lock all I/O to the array, leading to persistent downtime until a reboot or manual reset is performed. Therefore the risk is primarily driven by the operational impact of a complete storage outage and the limited attack surface of privileged users.

Generated by OpenCVE AI on September 20, 2026 at 01:01 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest stable Linux kernel update that resolves the array_frozen flag issue in raid1_takeover, or, if no update is available yet, backport the patch or revert the change that sets the flag.
  • If upgrading the kernel is not feasible, disable or avoid using the raid1_takeover function until the fix is applied, and refrain from performing manual raid takeovers until the kernel is patched.
  • Continuously monitor system logs for indications of I/O stalls or array_frozen flag activity, and verify that no configuration changes have inadvertently set array_frozen on a RAID1 array.

Generated by OpenCVE AI on September 20, 2026 at 01:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sun, 20 Sep 2026 01:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-730
CWE-749

Thu, 17 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: md/raid1: don't set array_frozen in raid1_takeover() raid1_takeover() sets conf->array_frozen = 1 on the newly-allocated r1conf and nothing ever clears it, so every I/O to the array stalls permanently once _wait_barrier() sees it stuck at 1. This used to be harmless: level_store() called mddev_resume() right after pers->run(), which called raid1_quiesce(mddev, 0) and cleared array_frozen back to 0 regardless of what raid1_takeover() set. Commit b39f35ebe86d ("md: don't quiesce in mddev_suspend()") removed that quiesce(mddev, 0) call, so the pre-set now sticks. setup_conf() already zero-initializes the new r1conf via kzalloc, so just don't set array_frozen here. Same class of bug as commit 892da88d1cd9 ("md/raid10: fix a 'conf->barrier' leakage in raid10_takeover()"), also triggered by b39f35ebe86d.
Title md/raid1: don't set array_frozen in raid1_takeover()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-17T16:08:08.053Z

Reserved: 2026-09-11T19:38:34.797Z

Link: CVE-2026-90275

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-17T17:17:24.130

Modified: 2026-09-17T17:17:24.130

Link: CVE-2026-90275

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-20T01:15:07Z

Weaknesses