W dostarczonym w składzie FreeBSD serwerze OpenSSH wykryto lukę (CVE-2024-7589), która umożliwia zdalne wykonywanie kodu z uprawnieniami roota bez przeprowadzenia uwierzytelniania. Luka jest wariantem problemu ujawnionego na początku lipca w OpenSSH (CVE-2024-6387) i jest spowodowana stanem wyścigu, który powstaje z powodu wykonywania w obsłudze sygnałów funkcji, nieprzystosowanych do wywołania w trybie asynchronicznym.
Programiści FreeBSD usunęli pierwotną lipcową lukę niezwłocznie po ogłoszeniu, jednak poprawka nie obejmowała wszystkich możliwych wektorów ataku. Poprawka polegała na wyłączeniu wywołania funkcji sshlogv, która dynamicznie przydziela pamięć, co przy asynchronicznym wykonywaniu mogło prowadzić do uszkodzenia wewnętrznych struktur malloc w czasie wyzwolenia obsługi sygnału SIGALRM podczas wykonywania określonego kodu. Okazało się, że podobny problem występował w specyficznym dla FreeBSD wywołaniu funkcji blacklist_notify, zapewniającym integrację z procesem w tle blacklistd.
Oprócz zastosowania łaty, lukę można zablokować przez ustawienie w /etc/ssh/sshd_config parametru „LoginGraceTime=0”, jednak wyłączenie limitu czasowego ułatwi inicjację odmowy usługi w przypadku ustanowienia dużej liczby połączeń przekraczających limity ustawione za pomocą parametru MaxStartups.
Ponadto usunięto jeszcze trzy luki w FreeBSD:
- CVE-2024-6760 — możliwość obejścia ochrony przed stosowaniem ktrace do śledzenia procesów suid, co pozwala nieuprzywilejowanemu użytkownikowi uzyskać dostęp do zawartości plików, do których nie ma dostępu, na przykład można przeczytać zawartość pliku z hashami haseł użytkowników.
- CVE-2024-6759 — w kliencie NFS wykryto możliwość użycia w nazwach plików znaków rozdzielających ścieżki „..” oraz „/”;
- CVE-2024-6640 — luka w filtrze pakietów PF, przez którą pakiety ICMPv6 z zerowym identyfikatorem nie podlegały regułom zapory sieciowej, przewidzianym do przyjmowania pakietów odbitych w tabeli stanu (state table).
Źródło: opennet.ru
