Katalog CVE

CVE-2026-90167

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w module ksmbd zamknięcie pliku może przerwać trwające łamanie oplocka, gdy inny breaker już posiada referencję opinfo. Bez serializacji przejścia close z pozyskaniem bitu, zamknięcie może stać się nowym właścicielem breaka przez ścieżkę test_and_set_bit() i nadpisać OPLOCK_CLOSING stanem OPLOCK_ACK_WAIT, kontynuując break dla ginącego opinfo.

Ocena ryzyka

Nieserializowane operacje na stanie oplocka mogą prowadzić do wyścigów i użycia zwolnionego zasobu, powodując awarie jądra lub niespójność stanu blokad plików. Serwery SMB z ksmbd są narażone na destabilizację.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę serializującą zamknięcie oplocka z pozyskaniem własności breaka. Po aktualizacji przetestuj scenariusze oplocków w środowisku zbliżonym do produkcyjnego.

Inne podatności w Linux kernel (ksmbd)

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

In the Linux kernel, the following vulnerability has been resolved: ksmbd: serialize oplock close with pending break ownership close may abort an in-flight oplock break while another breaker already holds an opinfo reference. Releasing pending_break wakes that waiter, but without serializing the close transition with bit acquisition it can become a new break owner through the test_and_set_bit() fast path. It can then overwrite OPLOCK_CLOSING with OPLOCK_ACK_WAIT and continue a break for a dying opinfo. Make OPLOCK_CLOSING terminal once the opinfo is removed from the inode list. Serialize that transition, pending_break acquisition, and OPLOCK_ACK_WAIT setup with an opinfo state lock. A breaker which loses the race releases its ownership and returns -ENOENT. Explicitly wake pending_break waiters during close so they can observe the terminal state. Also prevent ACK and timeout paths from replacing OPLOCK_CLOSING with OPLOCK_STATE_NONE.

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