CVE-2026-99277
NieznaneStreszczenie
W module ksmbd jądra Linux występuje błąd zarządzania referencjami połączeń przy rejestracji kanałów sesji. Kanał przechowuje jedynie surowy wskaźnik do połączenia, więc połączenie może zostać zwolnione, podczas gdy inny posiadacz referencji do sesji nadal z niego korzysta (np. podczas wiązania SMB3.1.1 lub odczytu procfs).
Ocena ryzyka
Może prowadzić do użycia zwolnionej pamięci (use-after-free) i potencjalnego zawieszenia lub kompromitacji systemu przez zdalnego klienta SMB.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która utrzymuje referencję do połączenia na czas życia kanału sesji.
Inne podatności w Linux kernel (ksmbd)
Zobacz wszystkie- CVE-2026-99279Nieznane
W jądrze Linux w module ksmbd (serwer SMB) sesje zakończone przez wylogowanie lub zastąpienie nową sesją pozostawały w stanie Expired z zerowym terminem ważności poświadczeń, co mogło prowadzić do wycieku pamięci i zajmowania slotów połączeń. Poprawka dodaje odzyskiwanie takich sesji w istniejącym workerze wygasania oraz bezpieczne usuwanie wpisów procfs i referencji do tabeli.
- CVE-2026-99276Nieznane
W module ksmbd jądra Linux występuje zakleszczenie (deadlock) podczas odzyskiwania połączeń, gdy blokady sesji są zajęte. Worker odzyskiwania czeka na blokadę sesji trzymaną przez destroy_previous_session(), która z kolei czeka za pisarzem na conn_list_lock, którego worker nie zwalnia.
- CVE-2026-99273Nieznane
W module ksmbd jądra Linux funkcja get_file_stream_info() nie rezerwuje miejsca na kończący znak UTF-16 zapisywany przez smb_strtoUTF16(). Gdy wpis dokładnie wypełnia 448-bajtowy bufor odpowiedzi, terminator jest zapisywany dwa bajty poza alokacją.
- CVE-2026-89788Krytyczne
W jądrze Linux w module ksmbd występuje podatność use-after-free w funkcji smb2_tree_connect(). Nowo utworzone połączenie drzewa jest publikowane w sesji, a następnie używane przez procedurę obsługi, podczas gdy równoczesne wylogowanie sesji może zwolnić ten obiekt, zanim obsługa się zakończy.
- CVE-2026-89635Krytyczne
W jądrze Linux w module ksmbd funkcja ksmbd_reopen_durable_fd() podczas ponownego łączenia trwałego uchwytu (durable handle) przypisywała do nowej sesji wszystkie odłączone oplocki na danym i-nowęźle, a nie tylko ten należący do ponownie otwieranego pliku. Prowadziło to do sytuacji, w której jedna sesja przejmowała oplock innej sesji, a po zniszczeniu sesji przejmującej następowało użycie zwolnionej pamięci (use-after-free). Podatność występuje przy domyślnej konfiguracji udziału z obsługą durable handle i oplock, gdy dwie sesje otwierają ten sam plik z różnymi AppInstanceIds.
- CVE-2026-80926Krytyczne
W jądrze Linux naprawiono błąd use-after-free w mechanizmie powiadomień o przerwaniu oplocku w module ksmbd. Funkcja smb2_oplock_break_noti() odczytywała wskaźnik opinfo->conn bez blokady i używała go po operacjach alokacji, które mogą usypiać, co pozwalało na wyścig z procesem rozłączania trwałego uchwytu (durable handle) i dostęp do zwolnionego połączenia. Podatność może być wykorzystana przez każdego uwierzytelnionego klienta posiadającego trwały batch oplock.
- CVE-2026-43376Krytyczne
W jądrze systemu Linux zidentyfikowano podatność w ksmbd, która polega na błędzie use-after-free związanym z natychmiastowym zwalnianiem pamięci struktury oplock_info. Problem ten występuje, gdy wskaźnik jest unieważniany bez opóźnienia w okresie łaski RCU, co pozwala na dostęp do już zwolnionej pamięci.
- CVE-2026-43185Krytyczne
W module ksmbd jądra Linux występuje błąd znaku (signedness) w funkcji smb_direct_prepare_negotiation(). Wartość preferred_send_size jest rzutowana na int przed obliczeniem min_t(int, ...), więc złośliwa wartość 0x80000000 zostaje uznana za mniejszą niż max_recv_size i ustawiona jako maksymalny dozwolony rozmiar odbioru. Poprzez wysłanie drugiej wiadomości o dużym rozmiarze (>1420 bajtów) atakujący może doprowadzić do przepełnienia bufora na stercie.
- CVE-2026-23428Krytyczne
W module ksmbd jądra Linux występuje podatność use-after-free związana z obiektem share_conf w żądaniach złożonych (compound). Funkcja smb2_get_ksmbd_tcon() ponownie używa work->tcon bez sprawdzenia tcon->t_state, przez co po wcześniejszym SMB2_TREE_DISCONNECT (które zwalnia share_conf) kolejne polecenia odwołują się do zwolnionej pamięci.
- CVE-2023-54203Krytyczne
W jądrze Linux w module ksmbd wykryto podatność prowadzącą do odczytu poza granicami pamięci (slab-out-of-bounds) w funkcji init_smb2_rsp_hdr. Problem występuje, gdy próba montowania SMB1 kończy się niepowodzeniem, a serwer ksmbd błędnie obsługuje negocjację SMB1 jako operację SMB2, co powoduje nieprawidłowy odczyt pamięci.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ksmbd: hold a connection reference for each session channel ksmbd_session_unregister() removes a session from the global and per- connection tables before dropping the table reference. A concurrent reference holder can keep the session and its channel list alive after those removals. Connection cleanup can no longer find the unpublished session to remove its channels. Since a channel only stores a raw conn pointer, the connection can be freed while another session reference holder is still accessing it, for example during SMB3.1.1 binding or a procfs read. Take a connection reference when registering a channel and release it on insertion failure, channel removal, or final session destruction. Keep the channels and signing keys until the session is destroyed so a response can still be signed after the session has been unregistered.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

