Odebrany

CVE-2026-93252

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

ocfs2: napraw zależność blokowania cyklicznego w ocfs2_init_acl()

Ostrzeżenie lockdep wskazuje na cykliczną zależność blokowania pomiędzy
`&oi->ip_xattr_sem` i `&journal->j_trans_barrier`:

OSTRZEŻENIE: wykryto możliwą zależność blokowania cyklicznego
próbuje uzyskać blokadę:
(&oi->ip_xattr_sem){++++}-{4:4}, w: ocfs2_init_acl+0x2fd/0x7e0
fs/ocfs2/acl.c:367

ale zadanie już blokuje:
(&journal->j_trans_barrier){.+.+}-{4:4}, w: ocfs2_start_trans+0x3ab/0x700
fs/ocfs2/journal.c:369

Zakleszczenie obejmuje dwie ścieżki kodu: Ścieżka 1 (setxattr) gdzie
`ocfs2_xattr_set()` pobiera `ip_xattr_sem` (zapis), a następnie rozpoczyna
transakcja, która nabywa `j_trans_barrier` (czytaj); i Ścieżka 2
(mkdir/mknod) gdzie `ocfs2_mknod()` rozpoczyna transakcję (`j_trans_barrier`
read), a następnie wywołuje funkcję `ocfs2_init_acl()`, która próbuje uzyskać
`ip_xattr_sem` (odczyt) w katalogu nadrzędnym, aby pobrać domyślną listę ACL.

Ponieważ rw_semaphores podlegają priorytetowi zapisującego, oczekujący na zapis
`j_trans_barrier` (np. wątek zatwierdzania dziennika) może spowodować, że Ścieżka 1
zablokować, podczas gdy Ścieżka 2 jest zablokowana w oczekiwaniu na zwolnienie Ścieżki 1
`ip_xattr_sem`.

Łatka naprawia kolejność blokad, wstępnie obliczając stan listy ACL
rozpoczęcie transakcji OCFS2, przy jednoczesnym zachowaniu pamięci POSIX ACL
semantyka i istniejąca kolejność inicjalizacji i-węzła/zabezpieczeń. Czytając
domyślną listę ACL katalogu nadrzędnego i przygotowanie nowych list ACL dla i-węzła
poza transakcją, `ip_xattr_sem` jest zawsze pozyskiwane wcześniej
`j_trans_bariera`.

`struct ocfs2_acl_state` hermetyzuje przygotowany stan ACL, podczas gdy
`ocfs2_acl_init_prepare()` i `ocfs2_acl_init_release()` unikają kodu
duplikacja pomiędzy `ocfs2_mknod()` i `ocfs2_init_security_and_acl()`.
`ocfs2_calc_xattr_init()` i `ocfs2_init_acl()` używają tego wstępnie obliczonego
stan, usuwając wewnętrzne przejęcie `ip_xattr_sem` i nadmiarowy dysk
czyta.

Dodatkowo usuń przejęcie `ip_xattr_sem` z
`ocfs2_xattr_set_handle()`. Ta funkcja jest używana tylko podczas inicjalizacji a
nowy i-węzeł, który nie został jeszcze wstawiony do skrótu i-węzła ani do niego dołączony
dentysta, co oznacza, że nie ma ryzyka jednoczesnego dostępu, a zamek tak
niepotrzebne.

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org