Dwie nowe luki bez poprawki i długa seria załatanych
ksmbd to serwer plików SMB wbudowany w jądro Linuksa. Działa obok Samby jako lżejsza alternatywa, ale cały kod obsługujący ruch sieciowy z portu 445 wykonuje się w jądrze. Każdy błąd pamięci w tym kodzie daje więc atakującemu z sieci szansę na przejęcie całego systemu, bez pośrednictwa zwykłego procesu.
W nocy z 21 na 22 października Zero Day Initiative (Trend Micro) wysłała na publiczną listę dyskusyjną jądra raporty o kilku niezałatanych lukach, choć powinny trafić na prywatną listę bezpieczeństwa. Dwie z nich dotyczą ksmbd i mają ocenę CVSS 9.0:
- ZDI-CAN-33774: wyścig w obsłudze połączenia. Drugie żądanie przełącza połączenie z SMB1 na SMB2, gdy wcześniejszy bufor SMB1 jeszcze czeka na obsługę, a kod SMB2 czyta poza jego końcem. Według wektora CVSS atak nie wymaga uprawnień, ale trzeba wygrać wyścig.
- ZDI-CAN-33549: niedomiar liczby całkowitej w SMB Direct, czyli SMB po RDMA. Ma znaczenie tylko tam, gdzie serwer ma kartę z obsługą RDMA i włączone SMB Direct.
Na 22 października żadna z nich nie miała poprawki w głównej linii jądra ani numeru CVE. Poprawka dla SMB Direct czeka w gałęzi deweloperskiej. Numery CVE dla jądra są nadawane dopiero po wydaniu poprawki, więc pojawią się później.
Te dwa raporty nie są wyjątkiem. Od sierpnia opublikowano kilkadziesiąt CVE dla ksmbd. Dwa z nich, już załatane, są szczególnie groźne:
- CVE-2026-72422: użycie zwolnionej pamięci przy dwóch żądaniach SMB2 NEGOTIATE na jednym połączeniu. To etap przed logowaniem, więc nie potrzeba konta. CISA w NVD oceniła lukę na 9.8.
- CVE-2026-89788: użycie zwolnionej pamięci w
smb2_tree_connect()przy równoczesnym wylogowaniu sesji. Wymaga sesji SMB, czyli konta albo dostępu gościa. CISA również podała 9.8.
Żadnej z tych luk nie ma w katalogu CISA KEV i nie ma doniesień o atakach. Publiczny opis mechanizmu dwóch nowych błędów ułatwia jednak pracę każdemu, kto chce napisać exploit.
Kto naprawdę uruchamia ksmbd
Większość firmowych serwerów plików na Linuksie korzysta z Samby, która działa w przestrzeni użytkownika i tych luk nie ma. Red Hat nie dostarcza ksmbd w RHEL ani w obrazach UBI. Ubuntu i Debian budują ksmbd jako moduł jądra, ale moduł nie startuje sam: potrzebny jest pakiet ksmbd-tools i skonfigurowane udziały. Ryzyko dotyczy więc tych, którzy świadomie wybrali ksmbd: routerów i domowych serwerów NAS na OpenWrt (pakiety ksmbd-server i luci-app-ksmbd), małych serwerów plików stawianych „na szybko” w labach oraz urządzeń wbudowanych, w których producent wybrał ksmbd ze względu na mniejsze zużycie zasobów. Gotowe NAS-y z własnym systemem sprawdzajcie w dokumentacji producenta.
Jak sprawdzić, czy ksmbd u Was działa
lsmod | grep ksmbd: czy moduł jest załadowany.systemctl status ksmbd: czy działa usługa z pakietuksmbd-tools.grep SMB_SERVER /boot/config-$(uname -r): czy jądro ma ksmbd (CONFIG_SMB_SERVER) i SMB Direct (CONFIG_SMB_SERVER_SMBDIRECT).ss -ltnp | grep ':445': port 445 nasłuchujący bez nazwy procesu zwykle oznacza serwer w jądrze; Samba pokaże się jakosmbd.- Na OpenWrt:
opkg list-installed | grep ksmbd.
Co zrobić teraz, a co w oknie serwisowym
Jeśli ksmbd nie jest Wam potrzebny, wyłączcie go dziś: systemctl disable --now ksmbd, potem modprobe -r ksmbd, a żeby nic go nie załadowało ponownie, dodajcie plik w /etc/modprobe.d/ z wpisem install ksmbd /bin/false. To jedyna skuteczna ochrona przed lukami bez poprawki.
Jeśli ksmbd musi działać:
- Zablokujcie port 445 na zaporze dla wszystkiego poza zaufanymi podsieciami. SMB nigdy nie powinien być dostępny z internetu.
- Wyłączcie dostęp gościa i SMB1 w
ksmbd.conf. - Jeśli nie używacie RDMA, SMB Direct i tak nie jest osiągalny, a ZDI-CAN-33549 Was nie dotyczy.
- Zainstalujcie dostępne już jądra z poprawką CVE-2026-72422 i zaplanujcie kolejną aktualizację, gdy pojawią się łatki dla nowych błędów.
Poprawione wersje dla CVE-2026-72422: jądra 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5 i 7.2 oraz nowsze. W dystrybucjach: Ubuntu 24.04 od 6.8.0-147.147, Ubuntu 22.04 od 5.15.0-198.208, Ubuntu 26.04 od 7.0.0-34.34, Debian 12 od 6.1.190-1, Debian 13 od 6.12.113-1. Część wariantów Ubuntu (HWE 6.17, Raspberry Pi, realtime) była 22 października wciąż oznaczona jako podatna.
CVE-2026-89788 poprawiają jądra 6.6.160, 6.12.114, 7.2.6 i 7.3. Debian 12 i 13 nie miały jeszcze tej poprawki w kanale bezpieczeństwa, a dla gałęzi 5.15 i 6.1 rekord CVE nie wskazuje poprawionej wersji. Po aktualizacji pamiętajcie o restarcie: działający system nadal używa starego jądra, dopóki nie uruchomi się ponownie (uname -r).
Wniosek na dłużej
Serwer plików w jądrze kusi wydajnością, ale tempo, w jakim znajdowane są w nim błędy, pokazuje, że kod nie jest jeszcze dojrzały. Warto mieć listę urządzeń, które wystawiają SMB w sieci, wraz z informacją, czy to Samba, ksmbd czy system producenta. Bez takiej listy przy każdej podobnej wiadomości trzeba od nowa szukać, gdzie działa port 445.