W module ksmbd, oferującym wbudowaną w jądro Linux realizację serwera plików w oparciu o protokół SMB, wykryto 14 podatności, z których cztery pozwalają na zdalne wykonanie dowolnego kodu z uprawnieniami jądra. Atak może być przeprowadzony bez uwierzytelnienia, wystarczy, aby na systemie był aktywowany moduł ksmbd. Problemy pojawiają się od jądra 5.15, w którego skład wszedł moduł ksmbd. Podatności zostały naprawione w aktualizacjach jądra 6.3.2, 6.2.15, 6.1.28 i 5.15.112. Możesz śledzić poprawki w dystrybucjach na następujących stronach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch.
Zidentyfikowane problemy:
- CVE-2023-32254, CVE-2023-32250, CVE-2023-32257, CVE-2023-32258 — zdalne wykonanie kodu z uprawnieniami jądra z powodu braku odpowiednich blokad obiektów podczas przetwarzania zewnętrznych żądań zawierających polecenia SMB2_TREE_DISCONNECT, SMB2_SESSION_SETUP, SMB2_LOGOFF i SMB2_CLOSE, co prowadzi do stanu wyścigu, który może być eksploatowany. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-32256 — wyciek zawartości obszarów pamięci jądra z powodu stanu wyścigu podczas przetwarzania poleceń SMB2_QUERY_INFO i SMB2_LOGOFF. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-32252, CVE-2023-32248 — zdalna odmowa usługi z powodu dereferencji wskaźnika zerowego podczas przetwarzania poleceń SMB2_LOGOFF, SMB2_TREE_CONNECT i SMB2_QUERY_INFO. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-32249 — możliwość przejęcia sesji użytkownika z powodu braku odpowiedniej izolacji podczas przetwarzania identyfikatora sesji w trybie kanałowym.
- CVE-2023-32247, CVE-2023-32255 — odmowa usługi z powodu wycieku pamięci podczas przetwarzania polecenia SMB2_SESSION_SETUP. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-2593 — odmowa usługi z powodu wyczerpania dostępnej pamięci, spowodowana błędem prowadzącym do braku zwracania pamięci podczas przetwarzania nowych połączeń TCP. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-32253 — odmowa usługi z powodu wystąpienia wzajemnego blokowania podczas przetwarzania polecenia SMB2_SESSION_SETUP. Atak może być przeprowadzony bez przechodzenia przez uwierzytelnienie.
- CVE-2023-32251 — brak ochrony przed atakami typu brute force przy odgadywaniu parametrów uwierzytelnienia.
- CVE-2023-32246 — lokalny użytkownik systemu z prawem do wyeksportowania modułu ksmbd może osiągnąć wykonanie swojego kodu na poziomie jądra Linux.
Dodatkowo ujawniono jeszcze 5 podatności w pakiecie ksmbd-tools, obejmującym narzędzia do zarządzania i pracy z ksmbd, działające w przestrzeni użytkownika. Najbardziej niebezpieczne podatności (ZDI-CAN-17822, ZDI-CAN-17770, ZDI-CAN-17820, CVE jeszcze nie przypisane) umożliwiają zdalnemu, nieautoryzowanemu atakującemu wykonanie swojego kodu z uprawnieniami root. Podatności spowodowane są brakiem sprawdzenia rozmiaru przyjmowanych zewnętrznych danych przed ich skopiowaniem do bufora w kodzie usługi WKSSVC oraz w obsługiwanych operacjach LSARPC_OPNUM_LOOKUP_SID2 i SAMR_OPNUM_QUERY_USER_INFO. Jeszcze dwie podatności (ZDI-CAN-17823, ZDI-CAN-17821) mogą prowadzić do zdalnego odmowy usługi bez przechodzenia autoryzacji.
Ksmbd jest przedstawiane jako wysokowydajne i gotowe do zastosowania na urządzeniach wbudowanych rozszerzenie do Samba, które można integrować z narzędziami i bibliotekami Samba w razie potrzeby. Obsługa działania serwera SMB za pomocą modułu ksmbd jest dostępna w pakiecie Samba od wersji 4.16.0. W przeciwieństwie do serwera SMB działającego w przestrzeni użytkownika, ksmbd jest bardziej efektywne pod względem wydajności, zużycia pamięci i integracji z zaawansowanymi możliwościami jądra. Autorami kodu ksmbd są Namjae Jeon z firmy Samsung i Hyunchul Lee z LG, a wsparciem w ramach jądra zajmuje się Steve French z firmy Microsoft, maintainer podsystemu CIFS/SMB2/SMB3 w jądrze Linux oraz długoletni uczestnik zespołu deweloperów Samba, który wniósł znaczny wkład w realizację wsparcia protokołów SMB/CIFS w Samba i Linux.
Dodatkowo warto wspomnieć o dwóch podatnościach w graficznym sterowniku vmwgfx, stosowanym do realizacji akceleracji 3D w środowiskach VMware. Pierwsza podatność (ZDI-CAN-20292) pozwala lokalnemu użytkownikowi zwiększyć swoje uprawnienia w systemie. Podatność ta wynika z braku sprawdzenia stanu bufora przed jego zwolnieniem podczas przetwarzania obiektu vmw_buffer_object, co może prowadzić do podwójnego wywołania funkcji free. Druga podatność (ZDI-CAN-20110) prowadzi do wycieku zawartości pamięci rdzenia z powodu błędów w organizacji blokady obiektów GEM.
Źródło: opennet.ru
