Katalog CVE

CVE-2026-90275

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w podsystemie md/raid1 funkcja raid1_takeover() ustawia conf->array_frozen = 1 na nowo utworzonym r1conf i nigdy tego nie czyści, przez co każde I/O do macierzy zatrzymuje się trwale, gdy _wait_barrier() widzi wartość 1. Wcześniej było to nieszkodliwe, bo level_store() wywoływało mddev_resume(), ale commit b39f35ebe86d usunął to wywołanie. Poprawka po prostu nie ustawia array_frozen w raid1_takeover().

Ocena ryzyka

Powoduje trwałe zawieszenie operacji I/O na macierzy RAID1 po przekształceniu (takeover), co prowadzi do niedostępności danych i potencjalnej utraty danych. Występuje na systemach z jądrem zawierającym commit b39f35ebe86d.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę usuwającą ustawienie array_frozen w raid1_takeover(). Jeśli macierz RAID1 została już przekształcona i zawiesiła I/O, może być wymagane ponowne utworzenie macierzy.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS