Podatności Linux kernel (ksmbd)
28 znanych podatności CVE w Linux kernel (ksmbd), przetłumaczonych i ocenionych.
- 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.
- CVE-2023-38432Krytyczne
W jądrze Linuxa przed wersją 6.3.10 odkryto problem związany z walidacją rozmiaru ładunku polecenia w ksmbd, co prowadzi do odczytu poza przydzielonym obszarem pamięci.
- CVE-2023-38431Krytyczne
W jądrze Linux przed wersją 6.3.8 odkryto problem związany z brakiem walidacji długości nagłówka NetBIOS w stosunku do rozmiarów nagłówków SMB w ksmbd. To prowadzi do odczytu poza przydzielonym zakresem pamięci.
- CVE-2023-38427Krytyczne
W jądrze Linux przed wersją 6.3.8 odkryto problem związany z podziałem całkowitym i odczytem poza zakresem w funkcji deassemble_neg_contexts w pliku fs/smb/server/smb2pdu.c w ksmbd.
- CVE-2026-98420Niskie ryzyko· EPSS 14%
W jądrze Linux w module ksmbd (serwer SMB) występuje błąd w obsłudze wygasania sesji SMB2. Funkcja ksmbd_session_register() niszczyła prawidłowe sesje po dziesięciu sekundach bezczynności, gdy klient rozpoczynał kolejną wymianę SessionSetup, myląc Session.IdleTime z Session.ExpirationTime. Powodowało to unieważnienie połączeń drzewa (tree connects) i błędy STATUS_NETWORK_NAME_DELETED na mapowanych dyskach.
- CVE-2026-93282Wysokie
W jądrze Linux naprawiono błąd w module ksmbd dotyczący sprawdzania uprawnień DACL. Mechanizm kontroli dostępu nie uwzględniał wpisu ACE dla grupy Authenticated Users (S-1-5-11), co powodowało błędne odrzucanie dostępu (STATUS_ACCESS_DENIED) do plików, do których uwierzytelniony użytkownik powinien mieć prawo. Dodatkowo obliczanie maksymalnego dostępu sumowało maski z wszystkich wpisów ACE, nawet tych niedotyczących bieżącego użytkownika, co mogło przyznawać nieuprawnione prawa.
- CVE-2026-90176Wysokie
W jądrze Linux w module ksmbd funkcja check_lock_range() używa zakresów domkniętych, więc przypadek start == end oznacza prawidłowy zakres jednobajtowy, a nie pusty. Skrót dla start == end pomijał obowiązkowe sprawdzanie blokad bajtowych dla jednobajtowych odczytów, zapisów, operacji copychunk oraz zakresów obcięcia, przez co operacja była dozwolona mimo konfliktującej blokady.
- CVE-2026-90175Niskie ryzyko· EPSS 9%
W jądrze Linux w serwerze SMB (ksmbd) bufor zwracany przez ksmbd_ipc_login_request_ext() nie był zwalniany po wywołaniach ksmbd_alloc_user(), co powodowało wyciek pamięci widoczny w kmemleak. Poprawka polega na bezwarunkowym zwolnieniu tego bufora.
- CVE-2026-90174Wysokie
W module ksmbd jądra Linux występuje błąd odczytu poza granicami bufora (slab-out-of-bounds) w funkcji ksmbd_alloc_user(). Funkcja kopiuje resp->hash_sz bajtów z odpowiedzi logowania IPC, gdzie hash_sz jest wartością __u16 dostarczoną przez odpowiedź i nie jest weryfikowana względem rozmiaru bufora hash[] (KSMBD_REQ_MAX_HASH_SZ). Złośliwa lub nieprawidłowa odpowiedź logowania może ustawić hash_sz do 65535, powodując odczyt poza końcem obiektu odpowiedzi.
- CVE-2026-90170Niskie ryzyko· EPSS 10%
W module ksmbd jądra Linux funkcja ipc_validate_msg() odczytuje pola długości (payload_sz, session_key_len, ngroups) z bufora odpowiedzi dostarczonego przez demona ksmbd w przestrzeni użytkownika, zanim zweryfikuje, czy bufor jest wystarczająco duży. Zbyt krótka odpowiedź powoduje odczyt poza granicami alokacji (slab-out-of-bounds), co prowadzi do błędu KASAN.
- CVE-2026-90169Niskie ryzyko· EPSS 15%
W jądrze Linux w module ksmbd sesje preautoryzacji (preauth_session) nie były zwalniane przy zamykaniu połączenia. Jeśli klient rozłączył się przed wysłaniem żądania authenticate, obiekt alokowany podczas NTLM negotiate nie był zwalniany ani przez ścieżkę authenticate, ani przez obsługę błędów, co powodowało wyciek pamięci.
- CVE-2026-90167Niskie ryzyko· EPSS 11%
W jądrze Linux w module ksmbd zamknięcie pliku może przerwać trwające łamanie oplocka, gdy inny breaker już posiada referencję opinfo. Bez serializacji przejścia close z pozyskaniem bitu, zamknięcie może stać się nowym właścicielem breaka przez ścieżkę test_and_set_bit() i nadpisać OPLOCK_CLOSING stanem OPLOCK_ACK_WAIT, kontynuując break dla ginącego opinfo.
- CVE-2026-90156Niskie ryzyko· EPSS 11%
W module ksmbd jądra Linux występuje błąd kolejności operacji przy odkładaniu blokad plików. Gdy vfs_lock_file() odroczy blokadę, ksmbd_lock trafia na listę rollback_list przed zarejestrowaniem asynchronicznej pracy, a przy niepowodzeniu tego kroku następuje dereferencja NULL oraz zwolnienie blokady wciąż powiązanej ze stanem VFS.
- CVE-2026-90155Niskie ryzyko· EPSS 11%
W module ksmbd jądra Linux występuje błąd cyklu życia blokad plików. Zachowane obiekty file_lock mogą wciąż należeć do grafu zablokowanych żądań VFS, a ich bezpośrednie zwolnienie powoduje naruszenie BUG_ON oraz możliwość użycia zwolnionej pamięci.
- CVE-2026-90154Niskie ryzyko· EPSS 10%
W module ksmbd jądra Linux funkcja ksmbd_all_conn_set_status() błędnie traktuje każde połączenie z ustawioną flagą tymczasowego powiązania jako należące do docelowego SessionId. W efekcie wylogowanie lub zastąpienie sesji może przenieść niezwiązane połączenie w stan NEED_RECONNECT lub NEED_SETUP.
- CVE-2026-90153Wysokie
W module ksmbd jądra Linux funkcja smb_check_perm_dacl() ogranicza przeszukiwanie wpisów ACE rozmiarem pozostałego bufora NTSD (acl_size) zamiast zadeklarowanym rozmiarem DACL (pdacl_size). Spreparowany DACL może umieścić wpis przyznający dostęp poza granicą pdacl->size, który zostanie zaakceptowany podczas walidacji dostępu SMB2_CREATE.
- CVE-2026-90152Niskie ryzyko· EPSS 11%
W module ksmbd jądra Linux funkcja ksmbd_session_register() nie usuwa sesji z sessions_table ani nie zwalnia referencji tabeli, gdy xa_store() zakończy się niepowodzeniem. Prowadzi to do wycieku sesji, ponieważ licznik referencji pozostaje na poziomie 1 i sesja nie zostaje zwolniona.
- CVE-2026-31707Wysokie
W jądrze Linux w module ksmbd funkcja ipc_validate_msg() oblicza oczekiwany rozmiar komunikatu, dodając lub mnożąc pola kontrolowane przez atakującego (payload_sz, ngroups) do stałego rozmiaru struktury w arytmetyce unsigned int. Może to prowadzić do przepełnienia całkowitego, które omija sprawdzenie rozmiaru, a następnie do niezgodnego z prawdą użycia długości w memcpy/kmemdup. Podatność dotyczy odpowiedzi demona IPC i jest odpowiednikiem wcześniejszej poprawki po stronie żądań.
- CVE-2026-31706Wysokie
W jądrze Linux w module ksmbd funkcja smb_inherit_dacl() ufała wartości num_aces odczytanej z atrybutu DACL katalogu nadrzędnego, bez weryfikacji jej spójności z rozmiarem pdacl_size. Uwierzytelniony klient mógł zmodyfikować atrybut security.NTACL, ustawiając num_aces = 65535, co prowadziło do niebezpiecznej alokacji pamięci (~8 MB) i potencjalnego przepełnienia na jądrach 32-bitowych. Poprawka waliduje num_aces, używa bezpiecznej alokacji kmalloc_array i zaostrza sprawdzanie rozmiaru ACE.
- CVE-2026-31432Wysokie
W jądrze systemu Linux zidentyfikowano podatność, która pozwalała na zapis poza przydzielonym buforem podczas przetwarzania złożonych żądań w ksmbd. Problem występował, gdy pierwsze polecenie w żądaniu zajmowało większość bufora odpowiedzi, co prowadziło do błędów w budowaniu deskryptora zabezpieczeń.
- CVE-2025-38711Średnie
W jądrze Linux w module serwera SMB (ksmbd) występuje zakleszczenie, gdy funkcja smb2_create_link() jest wywoływana z flagą ReplaceIfExists, a docelowa nazwa już istnieje. Funkcja ksmbd_vfs_kern_path_locked() zwraca sukces z zablokowanym katalogiem nadrzędnym, a następnie ksmbd_vfs_link() próbuje ponownie zablokować ten sam katalog, co prowadzi do zakleszczenia.
- CVE-2024-50285Wysokie
W module ksmbd jądra Linux brakuje sprawdzania równoczesnych operacji SMB. Klient wysyłający wiele jednoczesnych operacji SMB może wyczerpać pamięć poprzez ksmbd_work_cache, co prowadzi do problemu OOM. Mechanizm kredytów ksmbd nie radzi sobie z tym problemem, dlatego poprawka dodaje sprawdzenie przekroczenia maksymalnej liczby kredytów, zakładając, że jedno żądanie SMB zużywa co najmniej jeden kredyt.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

