7 новых уязвимостей в FreeBSD

good-penguin.png

20 мая 2026 года разработчики FreeBSD объявили об исправлении семи новых уязвимостей в системе. Не все они одинаково опасны, но есть и крайне неприятные.

CVE-2026–45251 — use-after-free в select-подобных сисколлах, если в их списке ожидания имеются дескрипторы процессов (в FreeBSD 15 — ещё новые дескрипторы jail-ов), и эти дескрипторы были закрыты в другом потоке пока ожидающий сисколл всё ещё находился в ожидании. Судя по этому коммиту, затронуты так же дескрипторы, связанные с netmap (драйвером ускоренного прямого доступа к сетевому адаптеру), но на этот счёт официальной информации нет. Дескрипторы процессов появились в FreeBSD 9, так что уязвимость, вероятно, существует с тех пор. В официальном заявлении указано, что уязвимость позволяет получить привилегии суперпользователя. Возможности её нейтрализовать без патча/обновления нет.

CVE-2026–45250 — неправильный расчёт размера буфера и последующая запись мимо буфера в стеке в системном вызове setcred, причём, несмотря на то что setcred сам требует root-привилегий, порча стека происходит до того как привилегии проверены и таким образом доступна всем. Этот системный вызов появился в FreeBSD 14.3 (то есть более ранние версии не затронуты) и даёт способ установить все идентификаторы пользователя и групп текущего процесса за 1 вызов, вместо комбинаций setuid+setgid+setgroups и подобного. Уязвимость позволяет исполнять вредоносный код в контексте ядра. Возможности её нейтрализовать без патча/обновления нет.

CVE-2026–45252 — отсутствие проверки наличия завершающего нуля перед копированием строки, полученной от fuse-демона, в новый буфер. Тем не менее, проверка на максимальный размер копирования там есть, и больше чем 253 лишний байт из ядерной памяти прочесть не получится. А так же получится записать до 250 байт в «unallocated kernel heap space». По умолчанию в freebsd запрещено монтирование файловых систем не-root пользователями, а значит для подсовывания ядру злонамеренного fuse-демона нужно быть root-ом. Однако, если sysctl vfs.usermount=1 — система становится уязвимой и для обычных пользователей. Так же стоит учитывать опасность fuse-демона в jail-е, где он может быть и root (но по-умолчанию это тоже запрещено).

CVE-2026–45253 — при использовании ptrace была возможность запустить в отлаживаемом процессе системный вызов с некорректным номером, что приводило к выполнению в ядре кода, не предусмотренного в запуску к качестве системного вызова, с потенциально плохими последствиями. Если установлено security.bsd.unprivileged_proc_debug=0 (что является хорошей практикой для серверов в любом случае, а установщик системы даже предлагает это сделать опционально), то пользовательские и jailed процессы не смогут использовать ptrace и таким образом уязвимость останется доступна только root-у.

CVE-2026–45255 — инъекция shell-команд с root-правами в bsdinstall/bsdconfig через названия злонамеренных беспроводных сетей, которые там не экранировались, в момент просмотра их списка. Чтобы с данной уязвимостью не столкнуться, достаточно не просматривать список беспроводных сетей из bsdinstall/bsdconfig.

CVE-2026–39461, CVE-2026–45254 — уязвимости в библиотеке libcasper (не в ядре). Библиотека предназначена для безопасного настраиваемого предоставления сервисов процессам, помещённым в песочницу. Одна из уязвимостей связана с выходом за границу буфера в стеке и повреждение стека методом организации в этой библиотеке файловых дескрипторов с большими номерами (она была рассчитана на номера до 1024 — дефолтный лимит структур для сисколла select). Вторая уязвимость — возможность удалять наложенные списки ограничений (идеология библиотеки состоит в том, что единожды наложенные на процесс ограничения могут только усиливаться) cap_net.

Исправленные версии системы имеют номера: 14.3-RELEASE-p14, 14.4-RELEASE-p5 и 15.0-RELEASE-p9. Так же стоит отметить для некоторых важный момент: релиз FreeBSD 13.5 совсем недавно снят с поддержки — 30 апреля 2026 года, и для него (и для 13.х ветки вообще) официальных исправлений уже нет. Однако, если вам по какой-то причине пока что не хочется торопиться с переходом на 14.х релиз, патчи для версии 14.3 в целом подходят и к исходникам 13.5, а CVE-2026–45250 для 13-й ветки неактуально в связи с отсутсттвием в ней setcred ().

>>> FreeBSD Security Advisories

©  Linux.org.ru