CVE-2026-80879
NieznaneStreszczenie
W jądrze Linux wykryto cykliczną zależność blokad w systemie plików OCFS2 podczas operacji zapisu z bezpośrednim dostępem do pamięci (DIO). Problem dotyczy funkcji ocfs2_dio_end_io_write, która może prowadzić do zakleszczenia (deadlock) w wyniku nieprawidłowej kolejności blokowania zasobów systemowych (INODE_ALLOC, EXTENT_ALLOC, ORPHAN_DIR). Poprawka polega na zwolnieniu kontekstów alokacji przed uzyskaniem blokady ORPHAN_DIR.
Ocena ryzyka
Zakleszczenie może spowodować zawieszenie się systemu lub procesów korzystających z OCFS2, co prowadzi do niedostępności usług i potencjalnej utraty danych. Atakujący z lokalnym dostępem i możliwością wywołania operacji DIO może celowo wywołać ten stan, powodując awarię systemu (DoS).
Rekomendacja
Zastosuj aktualizację jądra Linux zawierającą poprawkę dla CVE-2026-80879. Jeśli nie jest dostępna, ogranicz dostęp do systemów plików OCFS2 i monitoruj logi jądra pod kątem ostrzeżeń o cyklicznych zależnościach blokad.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-80919Nieznane
W jądrze Linux w sterowniku amdgpu wykryto podatność polegającą na rekurencyjnym blokowaniu mutexu w funkcji amdgpu_devcoredump_format(). Podczas zrzutu zawartości IB z zawieszonego zadania dochodzi do podwójnego zablokowania tego samego obiektu synchronizującego, co może prowadzić do zakleszczenia systemu. Problem został naprawiony przez przeniesienie operacji do osobnej funkcji używającej jednego kontekstu drm_exec.
- CVE-2026-80915Nieznane
W jądrze Linux w sterowniku drm/xe naprawiono ścieżki alokacji DPT. Usunięto mechanizm awaryjnego przełączania z pamięci VRAM na pamięć systemową, ponieważ nie działał poprawnie i powodował czarny ekran z błędami potoku. Dodatkowo uniknięto używania pamięci stolen ze względu na opóźnienia i ryzyko losowych zawieszeń systemu pod obciążeniem.
- CVE-2026-80886Nieznane
W jądrze Linux naprawiono podatność w sterowniku szeregowym msm, polegającą na wyłączeniu DMA dla konsoli UART. Jednoczesne zapisy z przestrzeni użytkownika i jądra mogą powodować wyścig, prowadzący do nieskończonej pętli drukowania tych samych komunikatów. Poprawka wyłącza DMA dla konsoli UART, aby zapewnić niezawodną ścieżkę wyjścia.
- CVE-2026-80885Nieznane
W jądrze Linux naprawiono problem w AFS dotyczący nieanulowanego handlera komunikatów OOB rxrpc. Poprawka anuluje przetwarzanie komunikatów OOB (zwykle w odpowiedzi na wyzwania bezpieczeństwa) oraz przenosi to przetwarzanie do kolejki afs_wq, aby było ono oczekiwane. Handler OOB zwraca teraz, jeśli przestrzeń nazw sieci nie jest już aktywna.
- CVE-2026-80882Nieznane
W jądrze Linux naprawiono problem w sterowniku kryptograficznym Tegra, polegający na zwracaniu błędu ENOMEM, gdy alokacja bufora wejściowego nie powiedzie się w funkcji tegra_ccm_do_one_req. Poprawka zapewnia ustawienie wartości błędu ENOMEM w przypadku niepowodzenia alokacji.
- CVE-2026-80881Nieznane
W jądrze Linux naprawiono problem w systemie plików OCFS2 dotyczący zarządzania buforami głowic w funkcji ocfs2_read_blocks(). Poprawka wyjaśnia, że wywołujący nie powinien zakładać, iż bufor głowicy zwrócony przez sb_getblk() jest wyłącznie własnością, a put_bh() zawsze zmniejsza licznik b_count z 1 do 0. Aby uniknąć sytuacji, w której bufor pozostaje wstrzymany i może być zwrócony z ustawionym bitem BH_Uptodate mimo wcześniejszego błędu walidacji, bit BH_Uptodate jest teraz czyszczony natychmiast po wykryciu niespójności danych przez funkcję validate().
- CVE-2026-80880Nieznane
W jądrze Linux w sterowniku IB/mlx5 występuje podatność związana z niejawnym ODP i operacją rereg_mr. Ze względu na dziecięce klucze mkey w konfiguracji niejawnego ODP nie można zmienić niczego w miejscu dla klucza nadrzędnego, dlatego cała struktura musi zostać przebudowana. Dodatkowo usunięto przypadek wyścigu związanego z dostępem do mr->pd przez dziecięce klucze.
- CVE-2026-80877Nieznane
W jądrze Linux w systemie plików AFS występuje wyciek pamięci związany z listą vllist w funkcji afs_update_cell(). Gdy nowa lista jest pusta (nr_servers == 0), stara lista nie jest zastępowana, co prowadzi do wycieku nowej listy.
- CVE-2026-80876Nieznane
W jądrze Linux wykryto podatność w mechanizmie ring-buffer (bufor pierścieniowy) używanym przez ftrace. Przy włączonej opcji RB_FORCE_8BYTE_ALIGNMENT (np. na architekturze riscv64 z CONFIG_HAVE_64BIT_ALIGNED_ACCESS) funkcja ring_buffer_event_length() nieprawidłowo oblicza długość zdarzeń dla małych zdarzeń, zawyżając raportowaną długość danych o 4 bajty. Problem objawia się niespójnymi wynikami w testach ftrace (trace_marker_raw).
- CVE-2026-80875Nieznane
W jądrze Linux w module IPVS występuje podatność w obsłudze stanu TCP. Kod parsuje ponownie pakiet, aby znaleźć nagłówek TCP, używając sizeof(struct ipv6hdr) dla IPv6, podczas gdy rzeczywiste przesunięcie nagłówka transportowego jest już znane z ip_vs_fill_iph_skb(). Dla pakietów IPv6 z nagłówkami rozszerzeń prowadzi to do odczytu niewłaściwych bajtów.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix circular locking dependency in ocfs2_dio_end_io_write A circular locking dependency involves INODE_ALLOC_SYSTEM_INODE, EXTENT_ALLOC_SYSTEM_INODE, and ORPHAN_DIR_SYSTEM_INODE. 1. ocfs2_mknod() acquires INODE_ALLOC then EXTENT_ALLOC. 2. ocfs2_dio_end_io_write() acquires EXTENT_ALLOC for unwritten extents, then ORPHAN_DIR via ocfs2_del_inode_from_orphan() while still holding EXTENT_ALLOC. 3. ocfs2_wipe_inode() acquires ORPHAN_DIR then INODE_ALLOC via ocfs2_remove_inode. Break the cycle in ocfs2_dio_end_io_write() by freeing the allocation contexts (releasing EXTENT_ALLOC) before acquiring ORPHAN_DIR. WARNING: possible circular locking dependency detected ------------------------------------------------------ is trying to acquire lock: ffff8881e78b33a0 (&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}, at: ocfs2_evict_inode+0x1539/0x43b0 fs/ocfs2/inode.c:1299 but task is already holding lock: ffff8881e78b4fa0 (&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]){+.+.}-{4:4}, at: ocfs2_evict_inode+0xe97/0x43b0 fs/ocfs2/inode.c:1299 the existing dependency chain (in reverse order) is: -> #2 (&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]){+.+.}-{4:4}: inode_lock include/linux/fs.h:1029 [inline] ocfs2_del_inode_from_orphan+0x12e/0x7a0 fs/ocfs2/namei.c:2728 ocfs2_dio_end_io+0xf9c/0x1370 fs/ocfs2/aops.c:2418 dio_complete+0x25b/0x790 fs/direct-io.c:281 -> #1 (&ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}: inode_lock include/linux/fs.h:1029 [inline] ocfs2_reserve_suballoc_bits+0x16d/0x4840 fs/ocfs2/suballoc.c:882 ocfs2_reserve_new_metadata_blocks+0x415/0x9a0 fs/ocfs2/suballoc.c:1078 ocfs2_mknod+0x10f3/0x2260 fs/ocfs2/namei.c:351 -> #0 (&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]){+.+.}-{4:4}: __lock_acquire+0x15a5/0x2cf0 kernel/locking/lockdep.c:5237 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868 down_write+0x96/0x200 kernel/locking/rwsem.c:1625 inode_lock include/linux/fs.h:1029 [inline] ocfs2_remove_inode fs/ocfs2/inode.c:733 [inline] ocfs2_wipe_inode fs/ocfs2/inode.c:896 [inline] ocfs2_delete_inode fs/ocfs2/inode.c:1157 [inline] ocfs2_evict_inode+0x1539/0x43b0 fs/ocfs2/inode.c:1299 Chain exists of: &ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE] --> &ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE] --> &ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE] Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]); lock(&ocfs2_sysfile_lock_key[EXTENT_ALLOC_SYSTEM_INODE]); lock(&ocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]); lock(&ocfs2_sysfile_lock_key[INODE_ALLOC_SYSTEM_INODE]); *** DEADLOCK ***
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

