CVE-2026-99273
NieznaneStreszczenie
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ą.
Ocena ryzyka
Może prowadzić do zapisu poza granicami bufora (out-of-bounds write) i potencjalnego uszkodzenia pamięci jądra przez zdalnego klienta SMB.
Rekomendacja
Zaktualizuj jądro Linux do wersji z poprawką rezerwującą dodatkową jednostkę UTF-16 w obu sprawdzeniach rozmiaru budżetu.
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-99277Nieznane
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).
- 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-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: reserve space for the UTF-16 terminator in stream info smb_strtoUTF16() always writes a terminating zero UTF-16 unit after the converted characters, but get_file_stream_info() budgets only sizeof(struct smb2_file_stream_info) + streamlen * 2 for a stream entry and sizeof(struct smb2_file_stream_info) + 7 * 2 for the trailing "::$DATA" entry. When an entry exactly fills the 448-byte small response buffer, the terminator is written two bytes past the allocation. Reserve one extra UTF-16 unit in both budget checks. The terminator is not part of the wire format, so the reported lengths are unchanged.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

