20 maja 2026 roku deweloperzy FreeBSD ogłosili o naprawieniu siedmiu nowych luk w systemie. Nie wszystkie są równie niebezpieczne, ale są też bardzo poważne.
CVE-2026-45251 — use-after-free w podobnych wywołaniach systemowych select, jeżeli ich liście oczekiwania znajdują się deskryptory procesów (w FreeBSD 15 — także nowe deskryptory jail-i), a te deskryptory zostały zamknięte w innym wątku, gdy oczekujące wywołanie systemowe wciąż było w stanie oczekiwania. Sądząc po tym commicie, dotknięte są również deskryptory związane z netmap (sterownikiem przyspieszonego bezpośredniego dostępu do kart sieciowych), ale w tej sprawie nie ma oficjalnych informacji. Deskryptory procesów pojawiły się w FreeBSD 9, więc luka istnieje prawdopodobnie od tego czasu. W oficjalnym oświadczeniu wskazano, że luka pozwala na uzyskanie uprawnień superużytkownika. Nie ma możliwości jej zneutralizowania bez łaty/aktualizacji.
CVE-2026-45250 — nieprawidłowe obliczenie rozmiaru bufora i późniejsze zapisanie poza bufor w wywołaniu systemowym setcred, przy czym, mimo że setcred wymaga uprawnień roota, uszkodzenie stosu następuje przed sprawdzeniem uprawnień i jest w ten sposób dostępne dla wszystkich. To wywołanie systemowe pojawiło się w FreeBSD 14.3 (to znaczy wcześniejsze wersje nie zostały dotknięte) i umożliwia ustawienie wszystkich identyfikatorów użytkownika i grup bieżącego procesu za pomocą 1 wywołania, zamiast kombinacji setuid+setgid+setgroups i tym podobnych. Luka umożliwia wykonanie złośliwego kodu w kontekście jądra. Nie ma możliwości jej zneutralizowania bez łaty/aktualizacji.
CVE-2026-45252 — brak sprawdzenia obecności końca łańcucha przed skopiowaniem łańcucha uzyskanego od demona fuse do nowego bufora. Niemniej jednak, istnieje sprawdzenie maksymalnego rozmiaru kopiowania, więc nie można odczytać więcej niż 253 dodatkowe bajty z pamięci jądra. Istnieje także możliwość zapisania do 250 bajtów w 'unallocated kernel heap space'. Domyślnie w FreeBSD zabronione jest montowanie systemów plików przez użytkowników niebędących rootami, co oznacza, że aby wprowadzić złośliwego demona fuse do jądra, trzeba być rootem. Jednakże, jeśli sysctl vfs.usermount=1 — system staje się podatny również dla zwykłych użytkowników. Należy również zważyć na niebezpieczeństwo demona fuse w jail-u, gdzie może być także root (ale domyślnie jest to również zabronione).
CVE-2026-45253 — przy użyciu ptrace istniała możliwość uruchomienia w procesie do debugowania wywołania systemowego z niepoprawnym numerem, co prowadziło do wykonania w jądrze kodu, który nie był zaplanowany jako wywołanie systemowe, z potencjalnie złymi skutkami. Jeśli ustawiono security.bsd.unprivileged_proc_debug=0 (co jest dobrą praktyką dla serwerów w każdym przypadku, a instalator systemu wręcz sugeruje to jako opcję), to procesy użytkowników i w piaskownicy nie będą mogły korzystać z ptrace, a zatem luka pozostanie dostępna tylko dla roota.
CVE-2026-45255 — wstrzyknięcie poleceń shell a z uprawnieniami root w bsdinstall/bsdconfig przez nazwy złośliwych sieci bezprzewodowych, które nie były tam zabezpieczane, podczas przeglądania ich listy. Aby uniknąć tej luki, wystarczy nie przeglądać listy sieci bezprzewodowych z bsdinstall/bsdconfig.
CVE-2026-39461, CVE-2026-45254 — luki w bibliotece libcasper (nie w jądrze). Biblioteka ta jest przeznaczona do bezpiecznego, konfigurowalnego dostarczania usług procesom umieszczonym w piaskownicy. Jedna z luk dotyczy wychodzenia poza granice bufora w stosie i uszkodzenia stosu metodą organizacji w tej bibliotece deskryptorów plików z dużymi numerami (była zaprojektowana na numery do 1024 - domyślny limit struktur dla wywołania systemowego select). Druga luka - możliwość usuwania nałożonych list ograniczeń (ideologia biblioteki polega na tym, że raz nałożone ograniczenia na proces mogą być tylko zaostrzone) cap_net.
Poprawne wersje systemu mają numery: 14.3-RELEASE-p14, 14.4-RELEASE-p5 i 15.0-RELEASE-p9. Warto również zauważyć istotny punkt dla niektórych: wersja FreeBSD 13.5 niedawno została wycofana z wsparcia - 30 kwietnia 2026 roku, a dla niej (i dla 13. x w ogóle) nie ma już oficjalnych poprawek. Jednak jeśli z jakiegoś powodu nadal nie chcesz się spieszyć z przejściem na wersję 14.x, poprawki dla wersji 14.3 w ogóle pasują również do źródeł 13.5, a CVE-2026-45250 dla gałęzi 13 nie ma zastosowania w związku z brakiem w niej setcred().
Źródło: linux.org.ru
