CVE-2026-90176
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Konfliktujące blokady bajtowe nie są egzekwowane dla operacji jednobajtowych, co może prowadzić do uszkodzenia danych lub naruszenia spójności plików udostępnianych przez SMB. Organizacje korzystające z serwera plików ksmbd są narażone na błędy integralności danych.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę usuwającą skrót dla zakresów jednobajtowych w check_lock_range(). Po aktualizacji zweryfikuj działanie serwera ksmbd w środowisku testowym.
Inne podatności w Linux kernel (ksmbd)
Zobacz wszystkie- 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.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ksmbd: Do not skip lock checks for single-byte ranges check_lock_range() uses inclusive ranges. Its callers pass the end offset as start + length - 1, so start == end represents a valid single-byte range rather than an empty range. The start == end shortcut therefore skips mandatory byte-range lock checks for one-byte reads, writes, copychunk operations and one-byte truncate ranges. A conflicting lock covering that byte is not checked and the operation is allowed to proceed. Remove the shortcut. The truncate size == inode->i_size case is already handled by only calling check_lock_range() when the new size differs from the current file size.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

