Katalog CVE

CVE-2026-99256

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux moduł dm cache używał rw_semaphore do blokady background_work_lock, mimo że blokady zapisu rw_semaphore mają ścisłą semantykę właściciela. Proces blokujący nie zawsze był tym samym, który zwalniał blokadę, co przy CONFIG_DEBUG_RWSEMS wyzwalało ostrzeżenie podczas suspend/resume urządzenia cache. Poprawka zastępuje rw_semaphore spinlockiem i kolejką oczekujących.

Ocena ryzyka

Może dochodzić do ostrzeżeń jądra i potencjalnych problemów ze współbieżnością podczas operacji suspend/resume na urządzeniach dm cache. W skrajnych przypadkach grozi to niestabilnością podsystemu pamięci masowej.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką zamieniającą rw_semaphore na spinlock i kolejkę oczekujących. Priorytet wyższy dla systemów wykorzystujących dm cache.

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: dm cache: fix issue with background work locking dm cache used a rw_semaphore for background_work_lock. Write locks on rw_semaphores have strict owner semantics, but there was no guarantee that the process that locked background_work_lock was the same process that unlocked it. This can be easily seen using a kernel compiled with CONFIG_DEBUG_RWSEMS. Given a dm cache device <cache>, run: 'dmsetup suspend <cache> && dmsetup resume <cache>'. This will trigger a kernel warning: DEBUG_RWSEMS_WARN_ON((rwsem_owner(sem) != current) && !rwsem_test_oflags(sem, RWSEM_NONSPINNABLE)) triggered by cache_resume(). To fix this, switch from a rw_semaphore to a spinlock and a wait queue. dm cache already has a wait queue and associated counter, migration_wait and nr_allocated_migrations, that was getting woken up when background work was getting completed, but wasn't actually used by anything. This is replaced by the background_work queue and counter.

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