Podatność w podsystemie GFS2 jądra Linux polega na braku wymaganej blokady podczas wywoływania funkcji opróżniania dziennika (log flush). Może to prowadzić do warunków wyścigu z współbieżnymi transakcjami, co grozi uszkodzeniem systemu plików lub innymi poważnymi skutkami.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: gfs2: add some missing log locking Function gfs2_logd() calls the log flushing functions gfs2_ail1_start(), gfs2_ail1_wait(), and gfs2_ail1_empty() without holding sdp->sd_log_flush_lock, but these functions require exclusion against concurrent transactions. To fix that, add a non-locking __gfs2_log_flush() function. Then, in gfs2_logd(), take sdp->sd_log_flush_lock before calling the above mentioned log flushing functions and __gfs2_log_flush().
Funkcja gfs2_logd() wywołuje funkcje opróżniania dziennika gfs2_ail1_start(), gfs2_ail1_wait() oraz gfs2_ail1_empty() bez uprzedniego przejęcia blokady sdp->sd_log_flush_lock. Tymczasem funkcje te wymagają wzajemnego wykluczenia względem współbieżnych transakcji. Brak tej synchronizacji może skutkować warunkami wyścigu, które naruszają spójność wewnętrznych struktur danych jądra. Poprawka wprowadza wersję __gfs2_log_flush() bez własnego blokowania i nakazuje przejęcie blokady sdp->sd_log_flush_lock przed wywołaniem wspomnianych funkcji.
Atakujący lub lokalny użytkownik mogący wywołać odpowiednie operacje na systemie plików GFS2 może doprowadzić do uszkodzenia danych, niestabilności systemu lub jego awarii (kernel panic). Wysoki wynik CVSS (9.8) wskazuje na potencjalną możliwość naruszenia poufności, integralności i dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami: https://git.kernel.org/stable/c/3b28eb75afe520972bacc833850c2b30aa0824cd oraz powiązane commity. Zaleca się aktualizację jądra Linux do wersji zawierającej poprawkę.
Jądro Linux z obsługą systemu plików GFS2; konkretne wersje wskazane w referencjach producenta (łatki dostępne pod adresami git.kernel.org)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux Kernel
OSLinux5.7 – 5.15.209 (bez)5.16 – 6.1.175 (bez)6.2 – 6.6.141 (bez)6.7 – 6.12.91 (bez)6.13 – 6.18.33 (bez)6.19 – 7.0.10 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
RCE przez YAML deserialization w IBM Aspera Faspex
RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection
Command Injection w VMware Workspace One Access i Identity Manager