CVE-2026-89491
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ocfs2: klaster: nie śpij, trzymając o2hb_live_lock w o2hb_region_pin()
Seria poprawek „ocfs2: klaster: poprawki o2hb_region_pin()”, v2.
Ta seria rozwiązuje trzy powiązane problemy z o2hb_region_pin(), wszystkie pochodzą z
oryginalna implementacja w zatwierdzeniu: 58a3158a5d17 („ocfs2/cluster:
Przypnij/odepnij regiony o2hb”):
1) Jest wywoływane z trzymaną blokadą o2hb_live_lock (blokada), ale
podstawowa configfs_dependent_item() śpi (pobiera i-węzeł rwsem i
przypina system plików). To wyzwala BŁĄD poniżej
CONFIG_DEBUG_ATOMIC_SLEEP.
2) Po wywołaniu z wywołania zwrotnego drop_item configfs tworzy plik
odwrócenie kolejności blokad: nadrzędny inode_lock -> katalog główny konfiguracji
inode_lock, który może zablokować się przed wyrejestrowaniem podsystemu
ścieżki zakorzeniające -> rodzic.
3) Jeśli przypinanie nie powiedzie się w trakcie metody o2hb_region_inc_user(), plik
Licznik o2hb_dependent_users wyciekł i jest częściowo przypięty
regiony nigdy nie są uwalniane, pozostawiając regiony pulsu
niezabezpieczone na kolejnych mocowaniach.
Łatka 1 zmienia o2hb_region_pin() tak, aby upuszczała o2hb_live_lock na każdym
uśpione wywołanie configfs_dependent_item(), używając odwołania do config_item
utrzymuj region przy życiu, gdy jest odblokowany.
Poprawka 2 dodaje parametr from_callback do wyboru
configfs_dependent_item_unlocked() wywołana z kontekstu configfs,
unikanie zagnieżdżania inode_lock.
Poprawka 3 naprawia ścieżkę błędu w o2hb_region_inc_user() do odpinania i
zmniejsz licznik w przypadku awarii.
Ta łatka (z 3):
Metoda o2hb_region_pin() jest zawsze wywoływana przy trzymanej blokadzie o2hb_live_lock
(z o2hb_region_inc_user() i o2hb_heartbeat_group_drop_item()), ale to
wywołuje o2nm_dependent_item() -> configfs_dependent_item(), która śpi: przypina
systemu plików configfs i pobiera główny i-węzeł configfs rwsem. Pod
CONFIG_DEBUG_ATOMIC_SLEEP powoduje to:
BŁĄD: funkcja uśpienia wywołana z nieprawidłowego kontekstu w kernel/locking/rwsem.c
in_atomic(): 1, ... nazwa: mount.ocfs2
w dół_zapis
configfs_dependent_item
o2hb_region_pin
o2hb_region_inc_user
o2hb_register_callback
dlm_register_domain_handlers
...
ocfs2_dlm_init
ocfs2_mount_volume
ocfs2_fill_super
Przerób funkcję o2hb_region_pin(), aby przypinać po jednym regionie na raz przy opuszczonej blokadzie
przez połączenie usypiające: pod o2hb_live_lock znajdź następny kwalifikujący się
region i weź odwołanie do config_item, aby utrzymać go przy życiu, porzuć blokadę,
wywołaj o2nm_dependent_item(), następnie ponownie zablokuj i zapisz PIN. The
config_item_put() jest również wykonywana po zwolnieniu blokady, ponieważ
o2hb_region_release() również przejmuje funkcję o2hb_live_lock i może spać. The
lista regionów może ulec zmianie po odblokowaniu, dlatego skanowanie rozpoczyna się od góry
po każdym pinzie. Lokalne bicie serca nadal przypina tylko pasujący region;
globalny puls przypina wszystkie kwalifikujące się regiony.
Ścieżka odpinania pozostaje niezmieniona: configfs_undependent_item() zajmuje tylko plik a
spinlock i nie śpi.
>_ 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