W systemie FreeBSD odkryto lukę w zabezpieczeniach (CVE-2026-7270), która umożliwia użytkownikowi bez uprawnień wykonanie kodu jądra i uzyskanie dostępu do systemu z uprawnieniami administratora. Luka dotyczy wszystkich wydań FreeBSD wydanych od 2013 roku. Eksploatacja jest publicznie dostępna i została przetestowana na systemach z systemem FreeBSD w wersji od 11.0 do 14.4. Luka została naprawiona w wersjach FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 i 13.5-RELEASE-p13. Dostępna jest łatka dla starszych wydań.
Problem jest spowodowany przepełnieniem bufora w wywołaniu systemowym execve. Występuje ono podczas przetwarzania prefiksu określonego w pierwszym wierszu skryptu w celu określenia ścieżki do interpretera (na przykład „#!/bin/sh”). Przepełnienie występuje podczas wywołania funkcji memmove z powodu niepoprawnie skonstruowanego wyrażenia matematycznego obliczającego rozmiar argumentów kopiowanych do bufora. Zamiast odejmować wartości „args->begin_argv” i „consume” od „args->endp”, od „args->endp” odejmowano tylko wartość „args->begin_argv”, a zmienna „consume” została dodana do wyniku, a nie odjęta. W rezultacie skopiowano więcej danych o dwie wartości „consume”. memmove(args->begin_argv + extend, args->begin_argv + consume, - args->endp - args->begin_argv + consume); + args->endp — (args->begin_argv + consume));
Przepełnienie pozwala na nadpisanie elementów struktury „exec_map” przydzielonych w sąsiedniej pamięci przez inny proces. Exploit wykorzystuje przepełnienie do nadpisania zawartości struktury „exec_map” uprzywilejowanych procesów okresowo uruchamianych w systemie. Wybranym procesem jest sshd, który po każdym nawiązaniu połączenia sieciowego rozwidla i wykonuje proces „/usr/libexec/sshd-session” z uprawnieniami roota.
Exploit zastępuje zmienną środowiskową „LD_PRELOAD=/tmp/evil.so” tym procesem, powodując załadowanie biblioteki w kontekście sesji sshd. Wstrzyknięta biblioteka tworzy plik wykonywalny o nazwie /tmp/rootsh w systemie plików z flagą suid root. Współczynnik powodzenia exploita szacuje się na 0.6%, ale dzięki cyklicznemu ponawianiu prób, udana eksploitacja jest osiągana w ciągu około 6 sekund na systemie z 4-rdzeniowym procesorem.

Dodatkowo w FreeBSD naprawiono kilka innych luk w zabezpieczeniach:
- CVE-2026-35547 i CVE-2026-39457 to przepełnienia bufora w bibliotece libnv, która jest używana w jądrze i aplikacjach systemu bazowego do przetwarzania list klucz/wartość oraz obsługi komunikacji międzyprocesowej. Pierwszy problem jest spowodowany nieprawidłowym obliczeniem rozmiaru komunikatu podczas przetwarzania specjalnie spreparowanych nagłówków komunikatów IPC. Drugi problem powoduje przepełnienie stosu podczas komunikacji przez gniazdo z powodu braku kontroli, czy rozmiar deskryptora gniazda odpowiada rozmiarowi bufora używanemu w funkcji select(). Luki te mogą potencjalnie zostać wykorzystane do eskalacji uprawnień.
- CVE-2026-42512 to zdalne przepełnienie bufora w dhclient, które może zostać wykorzystane w sposób zdalny, wynikające z nieprawidłowego obliczenia rozmiaru tablicy wskaźników używanej do przekazywania zmiennych środowiskowych do dhclient-script. Możliwe jest stworzenie exploita umożliwiającego zdalne wykonanie kodu poprzez wysłanie specjalnie spreparowanego pakietu DHCP.
- CVE-2026-7164 – Luka w zabezpieczeniach związana z przepełnieniem stosu w filtrze pakietów pf występuje podczas przetwarzania specjalnie spreparowanych pakietów SCTP. Problem jest spowodowany nieograniczonym rekurencyjnym przetwarzaniem parametrów SCTP.
- CVE-2026-42511 – Możliwe jest wstawienie dowolnych dyrektyw do pliku dhclient.conf z powodu nieodpowiedniego ukośnika podwójnych nawiasów w polach BOOTP otrzymanych z zewnętrznego serwera DHCP. Gdy proces dhclient następnie analizuje ten plik, pole wskazane przez atakującego jest przekazywane do skryptu dhclient-script, który może zostać użyty do wykonania dowolnych poleceń z uprawnieniami roota w systemach z systemem dhclient podczas uzyskiwania dostępu do serwera DHCP kontrolowanego przez atakującego.
- CVE-2026-6386 — Niedostateczna obsługa dużych stron pamięci w funkcji jądra pmap_pkru_update_range(). Użytkownik bez uprawnień może spowodować, że funkcja pmap_pkru_update_range() będzie traktować pamięć przestrzeni użytkownika jako stronę w tabeli stron pamięci, nadpisując w ten sposób nieautoryzowany obszar pamięci.
- CVE-2026-5398 – Odwołanie do wcześniej zwolnionego obszaru pamięci w procedurze obsługi TIOCNOTTY umożliwia nieuprzywilejowanemu procesowi uzyskanie uprawnień roota.
Źródło: opennet.ru
