CVE-2026-93282
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Błędne działanie kontroli dostępu może prowadzić zarówno do odmowy dostępu uprawnionym użytkownikom (problemy z dostępem do plików przez SMB), jak i do przyznania praw należących do niepowiązanych podmiotów, co stanowi ryzyko naruszenia poufności i integralności danych.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę dla CVE-2026-93282. Po wdrożeniu zweryfikuj działanie udziałów SMB obsługiwanych przez ksmbd, w szczególności dostęp do plików dla uwierzytelnionych użytkowników.
Inne podatności w Linux kernel (ksmbd)
Zobacz wszystkie- CVE-2026-90175Nieznane
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-90170Nieznane
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-90169Nieznane
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-90167Nieznane
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-90155Nieznane
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-90154Nieznane
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-90152Nieznane
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-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.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix maximum allowed access checks The DACL permission check looks for an ACE matching the current user and falls back to the Everyone ACE. It does not consider an Authenticated Users ACE, even though an authenticated session is a member of that well-known group. As a result, opening a file whose access is granted through S-1-5-11 can incorrectly fail with STATUS_ACCESS_DENIED. Treat an Authenticated Users ACE as a fallback entry alongside Everyone. The maximal access calculation also combines access masks from every ACE, regardless of whether its SID applies to the current user. This can grant rights belonging to an unrelated principal. Process only ACEs applying to the user, Everyone, or Authenticated Users, and accumulate allowed and denied masks in ACL order. Preserve explicitly requested access bits so they are validated against the resulting maximal mask. When ACCESS_SYSTEM_SECURITY is denied, report STATUS_PRIVILEGE_NOT_HELD instead of the generic STATUS_ACCESS_DENIED. Access to the system ACL requires a security privilege that ksmbd does not grant. For regular files, include FILE_EXECUTE in maximal access when the client requested GENERIC_EXECUTE and the DACL grants the complete file-read set. Keep a direct FILE_EXECUTE request subject to the explicit DACL bit. This matches the POSIX file ACL mapping without broadening specific execute requests. Do not replace rights from an applicable NT ACE with a POSIX ACL entry. The POSIX ACL is only a fallback when no user, Everyone, or Authenticated Users ACE applies; otherwise it can incorrectly broaden the stored DACL. This fixes smb2.maximum_allowed.maximum_allowed.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

