CVE-2026-99111
NieznaneStreszczenie
W jądrze Linux w kliencie SMB (cifs) naprawiono błąd powodujący uszkodzenie danych przy równoczesnych zapisach i operacji O_TRUNC. Funkcja cifs_do_truncate() opróżniała brudne strony i obcinała plik na serwerze bez blokady i_rwsem lub invalidate_lock, przez co równoczesny zapis mógł utworzyć nowe brudne strony, które następnie były po cichu odrzucane. Poprawka wprowadza blokady zapewniające atomowość sekwencji opróżniania, obcinania i zmiany rozmiaru.
Ocena ryzyka
Możliwe uszkodzenie danych w plikach na udziałach SMB/CIFS w wyniku równoczesnych operacji zapisu i obcinania. Może prowadzić do utraty lub niespójności danych w środowiskach z intensywnym dostępem do plików.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę. Wdróż aktualizację na systemach klienckich montujących udziały SMB/CIFS.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-58942Wysokie
W funkcji do_fault_around pliku memory.c występuje możliwe użycie po zwolnieniu (use after free) spowodowane błędem logicznym w kodzie. Może to doprowadzić do lokalnej eskalacji uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58847Nieznane
W funkcji kvm_vfio_pviommu_attach w pliku vfio.c występuje możliwość podwójnego zwolnienia (double free) wynikająca z błędu logicznego w kodzie. Może to prowadzić do lokalnego podniesienia uprawnień bez konieczności posiadania dodatkowych uprawnień. Do wykorzystania nie jest wymagana interakcja użytkownika.
- CVE-2026-58829Wysokie
W funkcji fuse_backing_mmap pliku backing.c występuje możliwość uszkodzenia pamięci z powodu użycia po zwolnieniu (use after free). Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58828Wysokie
W wielu funkcjach pliku base.c występuje możliwość użycia po zwolnieniu (use after free) z powodu warunku wyścigu. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58827Wysokie
W wielu funkcjach pliku dma-buf.c występuje możliwość użycia po zwolnieniu (use after free) z powodu warunku wyścigu. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58826Wysokie
W funkcji ksys_unshare pliku fork.c występuje możliwość uszkodzenia pamięci z powodu użycia po zwolnieniu (use after free). Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-58825Wysokie
W wielu funkcjach pliku fork.c występuje możliwość użycia po zwolnieniu (use after free) z powodu błędu logicznego w kodzie. Może to prowadzić do lokalnego podniesienia uprawnień bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-99242Nieznane
W jądrze Linux naprawiono wyścig w systemie plików NTFS między fallocate a odczytami przez mmap. Fallocate brał invalidate_lock tylko dla operacji punch hole, collapse range i insert range, a przy standardowej alokacji nowe klastry były mapowane przed wyzerowaniem, co pozwalało równoległym błędom stron mmap odczytać niezainicjalizowane dane z dysku.
- CVE-2026-99241Nieznane
W jądrze Linux naprawiono brak blokady w ntfs_filemap_page_mkwrite(), która wywoływała iomap_page_mkwrite() bez trzymania mapping->invalidate_lock. Równoległy truncate lub fallocate mógł w tym czasie unieważniać pagecache i przepisywać runlist, powodując wyścig z mapowaniem bloków i zabrudzaniem folio.
- CVE-2026-99240Nieznane
W jądrze Linux w podsystemie DAMON (mm/damon/core) występuje błąd dzielenia przez zero, gdy cel kwoty DAMOS (damos_quota_goal) ma wartość target_value równą zero. Poprawka przenosi obsługę tego przypadku do warstwy rdzeniowej, dodając walidację w funkcji damos_commit_quota_goal(), która teraz zwraca błąd przy zerowej wartości docelowej.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix data corruption with concurrent writes and O_TRUNC cifs_do_truncate() flushes dirty pages with filemap_write_and_wait() and truncates the file on the server, but in the old code both operations ran without holding i_rwsem or invalidate_lock. A concurrent buffered write via netfs_perform_write() -- which only needs i_rwsem shared -- could dirty new pages after the flush but before the local truncation, and those pages would be silently discarded by cifs_setsize() -> truncate_pagecache(). Fix by acquiring inode_lock (exclusive i_rwsem) and filemap_invalidate_lock at the top of cifs_do_truncate(), so the entire flush-truncate-resize sequence is atomic with respect to: - buffered writes (blocked by exclusive i_rwsem, since netfs_start_io_write takes i_rwsem shared), - read page faults (blocked by exclusive invalidate_lock, since filemap_fault takes it shared), - writeback collection (blocked by netfs_wb_begin/netfs_wb_end around the server truncate and local resize, since netfs_writepages also acquires the wb lock).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

